События ActionScript
Приветствую! Сейчас поговорим о событиях.
Язык ActionScript имеет Си-подобный синтаксис, чем-то похож на Java и Visual Basic. Только вместо формы AS имеет сцену. Среднестатистическая сцена, созданная в программе Adobe Flash CS5.5 выглядит так:
Также запомните одну простую истину: на слое, на котором есть хоть какая-то графика код писатьбесполезно.
Да-да, код мы пишем именно на слоях. Теперь будем слушать события. Создайте на сцене квадрат (круг или еще кого-нибудь, без разницы), затем выберите его и щелкните F8. Убедитесь, что конвертируете вы именно в Movie Clip. Потом выберите результат и задайте Instance Name -> box.
Пишем такой код (предварительно создав новый слой):
box.addEventListener(MouseEvent.CLICK, boxMove);
Можете нажать Ctrl+Enter, но ничего хорошего не получите. Мы определили событие, однако его нужно ещеобработать. Среднестатистический обработчик событий ActionScript выглядит так:
function название_фунции(e:тип_слушателя):void{тело_функции}
Кстати говоря, %название_функции% и то, что идет вопределении событияпосле (у нас) MouseEvent.CLICK должны быть идентичными. Обработаем событие так:
function boxMove(e:MouseEvent):void { box.x += 5; }
Вот полный листинг программы:
import flash.events.MouseEvent; box.addEventListener(MouseEvent.CLICK, boxMove); function boxMove(e:MouseEvent):void { box.x += 5; }
Теперь, на посашок, дам вам события крысы:
Событие ENTER_FRAME.
Это чудесное событие поможет нам сделать движение объекта. Делается это так:
stage.addEventListener(Event.ENTER_FRAME, ef); function ef(e:Event):void { box.x += 2; }
Заработало? Еще бы. Теперь сделаем, чтобы когда мы щелкаем на кнопку (которую вы предварительно нарисуете и дадите имя btn), квадрат переходил в 0 по иксу. Делают это так:
btn.addEventListener(MouseEvent.CLICK, btnClk); function btnClk(e:Event):void { box.x = 0; }
Полный листинг второй программы:
import flash.events.MouseEvent; import flash.events.Event; stage.addEventListener(Event.ENTER_FRAME, ef); function ef(e:Event):void { box.x += 2; } btn.addEventListener(MouseEvent.CLICK, btnClk); function btnClk(e:Event):void { box.x = 0; }
Это все. Удачи!