Используя анимацию
Apple обеспечивает класс JavaScript, функционирующий как таймер анимации, полезный для анимации исчезающих элементов или серии изображений. Классы, обеспечивающие это, AppleAnimator
и AppleAnimation
, часть Классов Apple, включенных в OS X v10.4.3 и позже.
Для больше при использовании всех Классов Apple, включая AppleAnimator
и AppleAnimation
, считайте Введение в Классы Apple.
Работа с анимацией
Обеспечение анимации в Вашем виджете может быть достигнуто с помощью AppleAnimator
и AppleAnimation
классы. AppleAnimator
таймер, стреляющий в определяемые интервалы на определенное время. AppleAnimation
содержит ряд значений и обработчика. Как AppleAnimations
добавляются к AppleAnimators
, значения в диапазоне анимации предоставлены для обработчика каждый раз огни аниматора. Для использования аниматоров и анимаций Вы должны:
Включайте
AppleAnimator
класс в Вашем файле HTMLСоздайте таймер аниматора
Создайте анимацию
Обеспечьте обработчик раньше действовал, когда стреляет таймер
Аниматор 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
объект:
Свойство | Описание |
---|---|
| Продолжительность таймера аниматора |
| Интервал, в котором вызывают обработчик анимации |
| Массив Объектов Animation Apple связался с аниматором |
| Текущая стоимость таймера |
| Когда таймер завершен, обработчик вызвал |
Эти свойства доступны AppleAnimation
объект:
Свойство | Описание |
---|---|
| Начальное значение анимации |
| Значение окончания анимации |
| Текущая стоимость анимации |
| Обработчик для анимации |
Прямоугольный подкласс анимации 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
объект:
Свойство | Описание |
---|---|
| Стартовый прямоугольник анимации |
| Прямоугольник окончания анимации |
| Текущий прямоугольник анимации |
| Обработчик для анимации |
Эти свойства доступны AppleRect
объект:
Свойство | Описание |
---|---|
| Оставленное значение прямоугольника, верхнего левого угла прямоугольника |
| Главное значение прямоугольника, верхнего левого угла прямоугольника |
| Правильное значение прямоугольника, правого нижнего угла прямоугольника |
| Минимальное значение прямоугольника, правого нижнего угла прямоугольника |