Веб программирование

События 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;
}

Теперь, на посашок, дам вам события крысы:

  • MouseEvent.CLICK – сделано нажатие и отпускание ЛКМ над рабочей областью;
  • MouseEvent.MOUSE_DOWN – сделано нажатие ЛКМ;
  • MouseEvent.MOUSE_UP – сделано отпускание ЛКМ;
  • MouseEvent.DOUBLE_CLICK – событие происходит после 2-го щелчка
  • MouseEvent.MOUSE_MOVE – событие происходит, если курсор перемещается над областью отображения;
  • MouseEvent.MOUSE_OVER – событие происходит, если указатель перемещается на объект. Чтобы событие произошло еще раз, курсор нужно поместить за пределы объекта, а потом снова навести его на объект.
  • MouseEvent.MOUSE_OUT – событие происходит, если указатель перемещается за пределы области объекта;
  • MouseEvent.MOUSE_WHEEL – событие происходит, если указатель расположен над рабочим объектом и пользователь крутит колесо;

Событие 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;
}

Это все. Удачи!


Есть вопросы? Спроси на нашем форуме!!
Нет комментариев

Оставлять комментарии можно только зарегистрированным




Предупреждение: Вся информация представлена исключительно в образовательных целях.
Ни авторы, ни администрация не несут ответственности в случае ее использования в противозаконных целях.