Събития с бутони

За разлика от клиповете, бутоните са неразривно свързани с ActionScript. Ако бутонът няма манипулатор за едно или друго от неговите събития, тогава присъствието му е абсолютно безсмислено. Общо 11 събития са характерни за масата на бутоните; Ще разгледаме 9 от тях в този раздел. Ще говорим за onSetFocus и за Kill Foe us събития, когато се разглежда въпросът за фокуса на клавиатурата.

onPress
Събитието onPress се случва при натискане на левия бутон на мишката, докато показалецът му е над активната област на бутона. Това събитие съответства на прехода на играещата глава на времевата диаграма на бутона към рамката надолу. И докато кодът, свързан с манипулатора onPress, не приключи, външният вид на бутона няма да се промени. Това трябва да се вземе предвид, ако трябва да се извърши голямо количество изчислителна работа при натискане на бутона. В такива случаи е много по-добре да използвате събитието onRelease.

Събитието onPress се използва активно и за клипове. Използвайки го, възможно най-просто е да се установи фактът, че кликнете върху екземпляр.

onRelease
Събитието onRelease съответства на освобождаването на бутона. Това се случва веднага след събитието onPress, но само ако, когато левият бутон на мишката бъде освободен, показалецът му е разположен върху активната област на бутона.


Ако потребителят е преместил показалеца извън активната област или натиснатият ляв бутон на мишката не е бил придружен от събитието onPress, тогава събитието onRelease не се случва.

Събитието onRelease е свързано с прехода на бутона в състояние Over. Външният му вид обаче се променя само когато изпълнението на кода на функцията манипулатор приключи.

onReleaseOutside
Събитието onReleaseOutside се случва, ако бутонът е освободен, докато показалецът на мишката е извън активната област. В противен случай той е напълно подобен на събитието onRelease.

На практика събитието onReleaseOutside обикновено се използва като допълващо събитие onRelease. Трябва да се използва, ако трябва да реагирате на освобождаването на бутона, независимо къде се намира показалеца на мишката. И тъй като това е най-често случаят, манипулаторът onRelease рядко се дублира от манипулатора onReleaseOutside.

onRollOver
Събитието onRollOver се задейства, когато показалецът на мишката влезе в активната област на бутона. Той съответства на промяната на режимите на бутоните от Up to Over (това се случва само след като кодът бъде изпълнен в манипулатора). Важно условие за настъпване на събитието onRollOver е левият бутон на мишката да не се натиска.

В случай на бутони от класа Button, събитието onRollOver не се прилага много често.


Това се дължи на факта, че те реагират на него, като автоматично сменят режимите. Това събитие е много по-важно, ако клипът действа като бутон. Използвайки го, можете да направите преход в точното време към рамката, изобразяваща режима Over.

В допълнение, събитието onRollOver може да бъде полезно при разработването на игри, в които трябва бързо да реагирате на показалеца на мишката, надвиснал над обект.

onRollOut
Събитието onRollOut се случва, когато показалецът на мишката напусне активната област на бутона. В този случай режимът Over се заменя с режим Up (но само след като кодът и манипулаторът са изпълнени). Събитието onRollOut се случва само ако левият бутон на мишката не е бил натиснат.

Има няколко важни неща, които можете да направите със събитието на RollOut. Първо, той ви позволява да превключвате между режими Over и Up, когато клипът се използва като бутон. На второ място, ви позволява да регистрирате момента, в който показалецът на мишката напусне клипа или бутона. Трето, като го използвате, можете да реагирате на изхода на показалеца на мишката извън прозореца на плейъра. За да направите това, трябва да създадете прозрачен клип (или бутон), който напълно покрива полето на филма.


Ако показалецът на мишката не се движи много бързо, тогава, когато премине границата на прозореца на плейъра за този клип, ще се случи събитието onRollOut.

onDragOut
Събитието onDragOut е напълно подобно на събитието onRollOut, с изключение на това, че се случва, ако левият бутон на мишката е натиснат, когато указателят напусне активната област на бутона. Обикновено onDragOut дублира onRollOut, ако фактът, че показалеца напуска бутона, трябва да бъде зададен независимо от позицията на левия бутон на мишката.