Обработка на ActionScript събития
Този урок описва как да откривате и обработвате събития на мишката и клавиатурата. Освен това тук ще намерите подробна информация как можете да местите клипове по екрана.
Общи характеристики на мишките събития

Ориз. 6.1. Работа със събития на мишката в лентата с действия
Всички събития на мишката могат да се използват независимо; можете да дефинирате произволен брой събития с мишката, като използвате лентата с действия. Ето списък на събития с мишката с кратко описание.
- Натисни.Това събитие се задейства, когато потребителят натисне бутон на мишката. Квадратчето за натискане обикновено е отметнато, за да активирате плъзгане на клип, но можете също да използвате това квадратче за отметка, за да дефинирате събитие за щракване, ако желаете. Плъзгането на клипове с мишката е разгледано по-подробно по-долу.
- Освобождаване.Това събитие се генерира при отпускане на бутона на мишката. Квадратчето за отметка Release е в известен смисъл обратното на квадратчето за отметка Press, въпреки че и двете могат да се използват за дефиниране на събитие за щракване и прилагане на механизъм за плъзгане и пускане.
- ReleaseOutside.Това събитие изисква потребителят да пусне бутона на мишката, когато показалецът на мишката е извън свързания бутон. Събитието ReleaseOutside се задейства, когато преместите показалеца на мишката върху бутон във филма и натиснете бутона на мишката, след което преместете показалеца извън този бутон, преди да пуснете бутона на мишката.
- Преобръщане. Това събитие възниква, когато показалецът на мишката задържи над бутон. Режимът за редактиране на знаци предоставя над рамка (Over), която ви позволява да определите операциите, които трябва да бъдат извършени, когато задържите курсора на мишката върхусъответния символ. В комбинация със събитието RollOver, този механизъм ви позволява да извършвате различни операции с всякакви обекти, които са в определен кадър.
- RollOut.Това събитие се генерира, когато показалецът на мишката се премести извън бутона.
- DragOver.Това събитие се задейства, когато показалецът на мишката се премести върху бутона, докато бутонът на мишката е натиснат. Писането на манипулатор на събития DragOver обикновено е трудно и като цяло изисква повече опит, отколкото писането на други манипулатори на събития.
- DragOut.Това събитие се генерира, когато показалецът на мишката се премести извън бутона, докато бутонът на мишката е натиснат. Много по-лесно е да откриете събитието DragOut, отколкото събитието DragOver.
Елементът OnMouseEvent в списъка с основни действия и конструкцията on()action са налични само когато работите върху скриптове за бутони. Също така имайте предвид, че пакетът Flash 5 има оператор onClipEvent(), който дефинира различен набор от събития. Ще обсъдим тази инструкция по-късно в тази глава. Конструкцията за действие on O не може да се използва в скриптове за рамка. Следващият пример демонстрира как бутоните на филма реагират на различни събития на мишката.
Пример за филм. Обработка на събития на мишката
Филмът, включен във файла mouseEvent.fla на компактдиска, има за цел да демонстрира различни елементи от техниката за обработка на събитие със символ на бутон. Този филм има три слоя:
- Бутон за действие
- Звук (Звук);
- Tomato Blaster (Експлозия на домат).
Основата на малък филм, направен в жанра на слот машината, е слоят Tomato Blaster (Tomato Explosion), представляващлетящи парчета от експлодиращ домат. Този филм има звукови ефекти; тук имаме работа с типична програма за игра, базирана на обработка на събития на мишката. На фиг. 6.2 показва слоевете и началния екран на филма.

Ориз. 6.2. Този филм използва различни манипулатори на събития
Доматен бластер слой
За да създадете този слой, трябва ръчно да направите проста рисунка на домат, накъсан на малки парчета.
- Маркирайте кадър 12 и натиснете F5, за да разширите филма до 12 кадъра.
- Начертайте домат в долния ляв ъгъл на работната зона. Използвайте за този инструмент Oval (Oval) и добавете зелени листа с четка.
- Направете рамка 2 ключова рамка, като я изберете и натиснете клавиша F6. Отворете панела Frame, като натиснете Ctrl+F (Windows) или Cmd+F (Macintosh) и наименувайте този ключов кадър Fire! (Огън), като въведете този низ в полето Етикет. Въведете друг кадър (кадър 9). Не е необходимо да задавате име на тази рамка.
- Начертайте бучките на домата на ключов кадър 9, както е показано на фиг. 6.3.
- Изберете елемент Форма (Форма) в падащия списък Tweening (Изрязване) панел Рамка (Рамка).

Ориз. 6.3.Ефектът от експлозията се определя от различните манипулатори на събития, намиращи се в скриптовете на бутонитекоито присъстват в работното пространство.
Всичко, което се случва в работната зона на филма, е свързано по един или друг начин с експлозията на домат. Събитията с мишката активират различни части от филма.
Сега трябва да създадете слой Sound (Звук). За да направите това, трябва да изпълните следната последователност от стъпки.
- Ключов кадър 2 чрез избиранеи натиснете клавиша F6.
- Изпълнете командата Window > Общи библиотеки > Звуци (Прозорец > Споделени библиотеки > Звуци). В звуковата библиотека изберете елемента Metal Clank. Този звук е доста подходящ за нашия филм.
- Щракнете двукратно върху ключовия кадър 2, за да отворите панела Sound. Изберете Metal Clank от падащия списък Sound. За останалите параметри можете да оставите стойностите по подразбиране, но се уверете, че полето Loops (Брой цикли) е зададено на 0 (трябва да повторите звука само веднъж).
Слой с бутон за действие
В слой Бутон за действие (бутон за действие) е необходимо да създадете шест бутона. Тези бутони ще се използват за демонстриране на различни събития на мишката. След като създадете бутоните, поставете ги в работното пространство, както е показано на фиг. 6.2 и 6.3. Използвайте лентата с инструменти Подравняване (Подравняване), за да подравните спретнато бутоните. Въведете етикети отдясно на съответните бутони. Добавете следните скриптове към всички бутони (отгоре надолу, отляво надясно, започвайки с горната двойка бутони).
За да изберете подходящите събития, използвайте квадратчетата за отметка в долната част на панела с действия.
Бъдете внимателни. Не трябва да задавате няколко флага наведнъж: в този случай няколко различни събития ще се появят в един ред на скрипта.
Филмът е готов. Тествайте го, като извиквате различни събития. На фиг. 6.3 експлозията на домата възниква в резултат на задържане на показалеца на мишката върху бутона, съответстващ на събитието RollOver. Не забравяйте да опитате да предизвикате експлозии с различни бутони.
Ако филмът отговаря на вашите очаквания, опитайте да дефинирате няколко различни събития за един и същи бутон. ПриВ този случай Flash няма да изведе никакви съобщения за грешка, но резултатът може да ви изненада.
Натисканията на клавишите са чувствителни към малки и главни букви, за разлика от имената и етикетите на променливи, които не чувствителни към главни и малки букви. Например, ако дефинирате етикет Q за рамка, както инструкциите goto-AndStop("Q"), така и gotoAndStop("q") ще прескочат до рамката с етикет Q. Въпреки това, ако сте написали някакъв отговор на клавиша Q и потребителят е натиснал клавиша q (с малки букви), тогава вашият манипулатор на събития не се задейства.
Бутон за обработка на натискане на клавиш
Когато използва механизма за обработка на натискане на клавиш, разработчикът обикновено се изправя пред въпроса къде трябва да се намира бутонът, чийто скрипт ще реагира на манипулациите на потребителя с клавиатурата.
Трябва ли да създам специален бутон и да го поставя в работното пространство на филма? Правилният отговор на този въпрос изглежда така: необходим е бутон за поставяне на скрипта, но зрителят не трябва да го вижда. За да работите ефективно с невидими бутони, можете да създадете отделен слой, който ще съдържа бутони, невидими в работната зона на филма, съдържащи скриптове за обработка на събития от клавиатурата. Тези бутони могат да бъдат достъпни, като изберете слоя с мишката и напишете Edit > Редактиране на символи (Редактиране > Редактиране на символи). В режим на редактиране на символи всички невидими елементи се показват като знак + (плюс). Като изберете тази икона и щракнете върху бутона Scene, можете да изберете невидим бутон, за да редактирате неговия скрипт. Можете да излезете от този режим, като щракнете в работната зона или като изберете друг слой. Следният примерен филм демонстрира как работят клавиатурите.събития.
Пример за филм. Работа с натискания на клавиши
Можете да намерите въпросния готов филм на компактдиска, който придружава тази книга във файла Keyboard.fla. Филмът се състои от три слоя:
- Невидим бутон (Невидим бутон);
- Писма (Писма);
- Фон (фон).
Този филм използва четири манипулатора на клавиши, свързани с клавишите r и l в главни и малки букви. Подобен сценарий може да бъде полезен във филм, където на потребителя се дава възможност да движи обект по екрана наляво (вляво) и надясно (вдясно). Първият слой на филма съдържа невидим бутон, докато вторият слой показва съобщения, свързани с отделни кадри, които се показват на екрана при натискане на различни клавиши (фиг. 6.4). Във всяка рамка има малко човече, което държи табела с текста на посланието в ръцете си; съобщенията показват клавиша, натиснат от потребителя (разбира се с малки и големи букви). Обърнете внимание, че в етикетите на рамката индикацията с главни букви изглежда като префикса cap (capL и capR).

Ориз. 6.4. Невидим бутон, предназначен да съдържа скрипт за натискане на клавиш, е представен в прозореца на библиотеката и в режим на редактиране на символи чрез иконата + (плюс)
Кликнете върху кадър 21 и натиснете F5, за да ограничите филма до 21 кадъра. Слоят с букви има четири ключови кадъра, без да броим първия. Текстовите съобщения са дефинирани в тези рамки, за да уведомят зрителя при натискане на различни клавиши. На фиг. Фигура 6.5 показва рамка, обозначена като capL. Текстът в другите ключови рамки се различава от този само по отношение на други клавиши: L, l и r.

Ориз. 6.5. Във файл Shockwave (SWF) можете да срещнете всичкифилмови съобщения
- Рамка 4 с етикет l. Използвайте инструмента Текст, за да въведете реда. Вие избрахте R, отличен избор, ако го кажа (Избрахте буквата 1 - отличен избор, уверявам ви). (Ще намерите образец на надписа на фигурата.) Уверете се, че Статичен текст е избран в падащия списък на панела Опции за текст (Опции за текст). Всички други ключови кадри използват един и същ текст, с изключение на замяната на една буква.
- Рамка 8 с етикет capL. Променете текста, използван в рамка 4, от малки l на главни букви.
- Рамка 13 с етикет r. Променете текста, използван в рамка 8, от главна L на малка буква.
- Рамка 16 с етикет capR. В текста, използван в рамка 13, заменете малката буква r с главна буква.
При натискане на клавиш филмът преминава към съответния кадър. Уверете се, че сте въвели правилните етикети за всички рамки, така че програмата да не обърка r с R и l с L. Имайте предвид, че имената на етикетите не са чувствителни към малки и големи букви.
Слой Невидим бутон
Слоят с невидим бутон съдържа най-голямо количество ActionScript. За да създадете този слой, следвайте следващите стъпки.

- След това щракнете двукратно върху goto, премахнете отметката от квадратчето Go to and Play в долната част на лентата с действия и въведете I за името на етикета.
- Въведете останалите инструкции на скрипта. Пълният текст на завършения скрипт е по-долу.