Метод ActionScript 2.0 | Обработчик ActionScript 1.0 | Применение для клипов | Применение для кнопок |
onPress | on(press) | Да | да |
onRelease | on(release) | Да | да |
onReleaseOutside | on(releaseOutside) | Да | да |
onRollOver | on(rollOver) | Да | да |
onRollOut | on(rollOut) | Да | да |
onDragOver | on(dragOver) | Да | да |
onDragOut | on(dragOut) | Да | да |
onKeyDown | on(keyPress "Name") onClipEvent(keyDown) | да да | да нет |
onKeyUp | onClipEvent(keyUp) | Да | нет |
onSetFocus | Нет | Да | нет |
onKillFocus | Нет | Да | нет |
onLoad | onClipEvent(load) | Да | нет |
onUnload | onClipEvent(unload) | Да | нет |
onEnterFrame | onClipEvent(enterFrame) | Да | нет |
onMouseDown | onClipEvent(mouseDown) | Да | нет |
onMouseUp | onClipEvent(mouseUp) | Да | нет |
onMouseMove | onClipEvent(mouseMove) | Да | нет |
Создание методов-обработчиков
Обработчик чаще всего является анонимной функцией, ссылка на которую присваивается методу клипа.
clip_mc.onPress = function() {
this._x+=10; //при нажатии клип перемещается горизонтально
}
Можно создать именованную функцию и присвоить ее имя методу‑обработчику.
function horizont _move() { this._x+=10; }
clip_mc.onPress = horizont _move;
Функция-обработчик может ссылаться на вызвавший ее объект через ссылку this. Если именованная функция вызывается непосредственно, то this будет указывать на хозяина временной оси, но которой находится сценарий кадра.
|
|
Абсолютная и относительная адресации в сценарии кадра используются так же, как и в сценарии кнопки. Обработчики, как и остальной код, желательно размещать на первом кадре основной временной шкалы.
Когда обработчик события выполнит свою задачу и станет не нужен, его можно удалить помощи оператора delete:
delete clip.onEnterFrame;
В случае часто происходящих событий (onEnterFrame, onMouseMove) это позволит освободить оперативную память и несколько уменьшить нагрузку на процессор.
Обработчики, созданные в сценарии клипа, удалить нельзя.
Задание №2
Выполните задание №1 с использованием сценария кадра.
Задание №3
Создайте 2 символа:
· прямоугольник, в центре которого символ-круг (circle);
· звезда, в центре которого находится такой-же символ-круг.
При вхождении указателя мышки в область круга символ, содержащий этот круг поворачивается на 15 градусов.
Возможны 2 варианта эффективного написания кода:
1. На временной оси основного ролика создать именованную функцию поворота родительского объекта и присвоить ее обработчикам события RollOver обоих желтых кругов.
2. При создании символа-круга circle на его временной оси создать сценарий кадра
this.onRollOver=function(){
this._parent._rotation+=15;
}
Выполнить оба варианта и добавить в рабочее поле еще один круг. Проанализировать поведение дополнительных кругов.
Задание №4
1. Создать новый fla файл. На его единственный кадр "перетащить " из библиотеки файла задания №3 символ circle. Протестировать файл.
2. Создать символ звездочку в центре которой экземпляр circle. Разместить в кадре экземпляр звездочки. Протестировать файл.
|
|
В чем удобство символов с кодом?
Контрольные вопросы к лабораторной работе №4
1. Создание методов-обработчиков событий.
2. Удаление методов-обработчиков событий.
3. Использование именованных функций для создания методов-обработчиков событий.
4. Использование указателя this в функциях и обработчиках событий.
5. Размещение кода на временной оси символа.
6. Объяснить код, использованный для выполнения задания.