ПРОСЬБА вопросы задавать в соседней теме, дабы не зафлуживать эту ))
Ссылка на тему:
http://www.flashplayer.ru/forum/index.php/topic,13143Урок 9. Подробнее о слушателях событий.Пожалуй, это последний урок, посвященный основам программирования на AS 2.0
В последующих уроках AS2.0 я попытаюсь составить краткий курс практики, чтобы научится пользоваться нашими знаниями и видеть их результат. Там вы будете писать уже сами, а я немного вас направлю и помогу.
Слушатели событий я условно разделю на три вида.
1. Использующие непосредственно событие.
2. Использующие объект для регистрации событий
3. Обработчик внутри MovieClip и Button.
1. Самый простой пример обработчика первого типа выглядит так:
ИмяОбъекта.ИмяОбработчика = function(){ // Заметьте, мы не пишем имя функции.
}
Все имена обработчиков начинаются со слова on, поэтому если вы видите такое слово, то перед вами обработчик. Наша главная временная шкала(_root) тоже объект, поэтому у нее тоже есть обработчики. Давайте посмотрим как они используются, пишем на главной шкале:
_root.onEnterFrame = function(){
trace("Работает!!!");
}
onEnterFrame – обработчик, который вызывается как только обновился кадр.
# Обновление кадров считается по fps – frame per second. Дословно с английского означает
# кадры в секунду. Если у вас fps стоит на 24, то данный код в скобках выполнится 24 раза.
Вот другой пример:
_root.onMouseDown = function(){
trace("Работает!!!");
}
Этот обработчик вызывается при нажатие мыши.
2. Не все объекты способны принимать обработчик напрямую, поэтому они регистрируют обработчик объекта. Делается почти также как и в первом случае.
var obj: Object = new Object; // Создаем объект
obj.onKeyDown = function(){//Пишем необходимый нам обработчик аналогично первому случаю.
trace("Работает!!!");
}
Key.addListener(obj);//Передаем наш созданный объект.
Данный код вызывается при нажатие клавиши клавиатуры onKeyDown.
На вопрос, для какого класса каким обработчиком надо пользоваться, используйте справку.
Справка:Есть справка в самом флэш, есть справка на сайте адоба(английский):
http://help.adobe.com/en_US/AS2LCR/Flash_10.0/help.html?content=Part2_AS2_LangRef_1.html Я же советую пока использовать эту, она больше подходит для уроков:
http://flash.demiart.ru/as_help/as_help_ru.rarОна на русском и с полным описанием(правда пару классов там нет, но они вам наврятле понадобятся в ближайшее время).
Итак, вот описание основных встроенных классов и для чего их используют:
1. Array – класс массива, что такое массив мы уже обсуждали.
2. Button – этот класс служит для создания кнопок.
3. Date – позволяет работать с временем.
4. Key – класс служит для работы с клавиатурой.
5. Math – содержит математические функции. Одна из которых - великий рандом =)
6. Mouse – работа с мышкой.
7. MovieClip – наиболее часто используемый класс, можно сказать, что наша временная шкала – это объект класса MovieClip.
8. Классы Number(число), String(строка), Boolean(булева величина).
9. Sound – работа со звуками.
10. Stage – работа со сценой.
11. TextField – текстовые поля.
Для каждого класса в справке расписаны его обработчики и как их использовать. Помните, обработчик начинается со слова on, так их проще найти.
Есть еще и другие классы, но их я оставляю вам, они вам наверно понадобятся только в будущем.
3. Третий вид скорее маленькое исключение. Наверняка создавая Кнопку или Мувиклип, вы нажимали на них и видели, что там тоже можно писать код. Так вот, там тоже можно писать обработчики, в кнопках для кнопок, а в клипах – для мувиклипов.
Код может располагатся только внутри обработчиков, в отличие от временной шкалы и выглядит он так:
Для кнопок:
on(Обработчик){//в скобках пишется обработчик без слова on(например Press)
}
Для клипов:
onClipEvent(Обработчик){// Обработчик для клипа опять же без слова on
}
На этом пожалуй все, дальше только работа со встроенными классами(напомню, они состоят из переменных, функций, и обработчиков) и ООП, но нам до него еще рано.
Задание:Откройте справку и попробуйте написать сами следующие обработчики:
Класс Обработчик
Key onKeyUp
Mouse onMouseDown, onMouseUp, onMouseWheel
MovieClip onLoad, onPress, onEnterFrame
TextField onChanged
Button onPress, onRelease