Используя анимацию

Apple обеспечивает класс JavaScript, функционирующий как таймер анимации, полезный для анимации исчезающих элементов или серии изображений. Классы, обеспечивающие это, AppleAnimator и AppleAnimation, часть Классов Apple, включенных в OS X v10.4.3 и позже.

Для больше при использовании всех Классов Apple, включая AppleAnimator и AppleAnimation, считайте Введение в Классы Apple.

Работа с анимацией

Обеспечение анимации в Вашем виджете может быть достигнуто с помощью AppleAnimator и AppleAnimation классы. AppleAnimator таймер, стреляющий в определяемые интервалы на определенное время. AppleAnimation содержит ряд значений и обработчика. Как AppleAnimations добавляются к AppleAnimators, значения в диапазоне анимации предоставлены для обработчика каждый раз огни аниматора. Для использования аниматоров и анимаций Вы должны:

Аниматор Apple и анимация, в HTML

Для объявления AppleAnimator и AppleAnimation объекты и используют их в JavaScript, необходимо включать класс в файл HTML виджета. Если Вы планируете обратную совместимость с прееOS X v.10.4.3 версии, следуете за направлениями в Назад Совместимом Использовании и включаете этот путь:

<script type='text/javascript' src='AppleClasses/AppleAnimator.js' charset='utf-8'/>

Если Вы планируете требование OS X v.10.4.3 или более новый для Вашего виджета, включаете AppleAnimation класс в его расположении в /System/Library/WidgetResources/:

<script type='text/javascript' src='/System/Library/WidgetResources/AppleClasses/AppleAnimator.js' charset='utf-8'/>

Аниматор Apple и анимация, в JavaScript

Существует два способа установить таймеры анимации и связанные диапазоны анимации в JavaScript Вашего виджета:

Полная установка и использование

AppleAnimator и AppleAnimation классы не имеют никакого появления по умолчанию и не обеспечивают фактических анимаций; вместо этого, они обеспечивают численные значения, которые могут быть полезными при анимации элементов в пользовательском интерфейсе виджета. Например, если у Вас есть элементы, исчезающие, изменяющие размеры или изменяющиеся в течение долгого времени, эти классы могут предоставить Вам соответствующие значения в течение долгого времени.

AppleAnimator класс обеспечивает объект, функционирующий как таймер. Его конструктор берет в двух параметрах, отрезок времени, который таймер должен запустить, и интервал, в который таймер должен выстрелить, оба в миллисекундах:

currentAnimator = new AppleAnimator(500, 13);

В этом экземпляре таймер, когда активировано, служит 500 миллисекунд и запускает каждые 13 миллисекунд.

Теперь, когда таймер был создан, диапазон анимации должен быть также. Конструктор для AppleAnimation класс принимает три значения: начальное значение, заканчивающееся значение и обработчик:

currentAnimation = new AppleAnimation(0.0, 1.0, animationHandler);

Эта анимация обеспечивает значения между 0.0 и 1.0 и, каждый раз, когда ее таймер огни, вызывает вызванную функцию-обработчик animationHandler. Обработчик для анимации должен принять четыре параметра: аниматор, обрабатывающий анимацию, текущую стоимость анимации, начального значения анимации и его значения окончания.

function animationHandler(currentAnimator, current, start, finish)
{
... // do something with a current value
}

Теперь, когда анимация устанавливается, она должна быть связана с таймером:

currentAnimator.addAnimation(currentAnimation);

Путем добавления, или соединение, анимация с таймером, таймер вызывает обработчик анимации каждый раз, когда это стреляет. Когда таймер запускает и обеспечивает надлежащее значение для интервала, на основе диапазона анимации, отображенного на продолжительности таймера. Каждый аниматор может быть связан с многократными анимациями, позволив Вам отследить многократные наборы значений с одним таймером.

В этой точке таймер и анимация готовы быть выполненными. Для начала таймера отправьте ему сообщение запуска:

currentAnimator.start();

Кроме того, можно остановить время в любой точке путем вызова stop() на аниматоре:

currentAnimator.stop();

Быстрая установка

Предыдущий раздел описал, как выполнить полную установку AppleAnimator таймер и AppleAnimation. Это позволяет Вам включать многократные анимации с одним аниматором и подходяще для обстоятельств, где одна анимация связана с одним аниматором.

AppleAnimator конструктор, однако, позволяет Вам указывать спецификации анимации в дополнение к ее обычным параметрам. Это позволяет Вам обходить наличие отдельного AppleAnimation объект, полезный для того, когда Вам только нужна одна анимация:

AppleAnimator(duration, interval, start, finish, handler)

Первые два значения, duration и interval, продолжительность таймера и как часто это стреляет. Следующие два значения, start и finish, запуск и окончание значений диапазона чисел, вычисляющихся, когда работает таймер. Наконец, handler имя функции, которую Вы обеспечиваете; это вызывают каждый раз, когда стреляет таймер:

function handler(currentAnimator, current, start, finish)
{
... // do something with a current value
}

Как с обработчиком анимации выше, этот обработчик должен принять четыре параметра: аниматор, обрабатывающий анимацию, текущую стоимость анимации, начального значения анимации и его значения окончания.

Для запуска анимации и таймера аниматора вызвать start() на аниматоре:

currentAnimator.start();

После запуска таймера аниматора, handler функция вызвана каждый интервал, пока не закончен конец продолжительности аниматора. current значение передало handler отражает увеличивающееся значение между start и finish. Для остановки таймера аниматора, прежде чем это закончилось вызвать stop():

currentAnimator.stop();

Свойства аниматора Apple и анимации

Эти свойства доступны AppleAnimator объект:

Свойство

Описание

animator.duration

Продолжительность таймера аниматора

animator.interval

Интервал, в котором вызывают обработчик анимации

animator.animations

Массив Объектов Animation Apple связался с аниматором

animator.timer

Текущая стоимость таймера

animator.oncomplete

Когда таймер завершен, обработчик вызвал

Эти свойства доступны AppleAnimation объект:

Свойство

Описание

animation.from

Начальное значение анимации

animation.to

Значение окончания анимации

animation.now

Текущая стоимость анимации

animation.callback

Обработчик для анимации

Прямоугольный подкласс анимации Apple

AppleRectangleAnimation подкласс обеспечивает значения, полезные при переходе между двумя прямоугольниками (подкласс не имеет никакого появления по умолчанию). AppleRectangleAnimation использование AppleAnimator таймер, чтобы инициировать его обработчики, но потребовать, что, запускаясь и заканчивая прямоугольники быть указанным как Прямоугольники Apple, с помощью AppleRect подкласс.

AppleRect определяется как:

AppleRect(left, top, right, bottom)

Прямоугольник указан его верхними левыми и нижними правыми координатами. Создать новое AppleRect объект, вызовите его конструктора и присвойте полученный объект в переменную:

startingRect = new AppleRect( 0, 0, 100, 100 );

Как только Вы создали запуск и окончание прямоугольника, создайте AppleRectAnimation объект, передающий в двух AppleRect объекты и имя обработчика, это нужно вызвать, когда стреляет прямоугольный таймер аниматора анимации:

currentRectAnimation = new AppleRectAnimation( startingRect, finishingRect, rectHandler );

Прямоугольный обработчик анимации Вы обеспечиваете потребности принять четыре параметра: прямоугольная анимация, инициировавшая обработчик, AppleRect объект со значениями текущего прямоугольника, запуском AppleRect объект и окончание AppleRect объект:

function rectHandler( rectAnimation, currentRect, startingRect, finishingRect );

Один раз AppleRectangleAnimation объект создается, создайте новое AppleAnimator объект, свяжите его со своей прямоугольной анимацией и запустите таймер аниматора:

currentAnimator = new AppleAnimator (500, 13);
currentAnimator.addAnimation(currentRectAnimation);
currentAnimator.start();

Свойства прямоугольной анимации Apple и прямоугольника Apple

Эти свойства доступны AppleRectangleAnimator объект:

Свойство

Описание

rectAnimation.from

Стартовый прямоугольник анимации

rectAnimation.to

Прямоугольник окончания анимации

rectAnimation.now

Текущий прямоугольник анимации

rectAnimation.callback

Обработчик для анимации

Эти свойства доступны AppleRect объект:

Свойство

Описание

rectangle.left

Оставленное значение прямоугольника, верхнего левого угла прямоугольника

rectangle.top

Главное значение прямоугольника, верхнего левого угла прямоугольника

rectangle.right

Правильное значение прямоугольника, правого нижнего угла прямоугольника

rectangle.bottom

Минимальное значение прямоугольника, правого нижнего угла прямоугольника