Используя анимацию
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 объект:
Свойство | Описание |
|---|---|
| Оставленное значение прямоугольника, верхнего левого угла прямоугольника |
| Главное значение прямоугольника, верхнего левого угла прямоугольника |
| Правильное значение прямоугольника, правого нижнего угла прямоугольника |
| Минимальное значение прямоугольника, правого нижнего угла прямоугольника |