Evenimentele (events) sunt actiuni realizate in prezentarea Flash de catre utilizator sau de alte elemente din acea prezentare.
De exemplu, click-ul sau pozitionarea mouse-ului pe un element din Flash, scrierea intr-un camp Text Input, sunt evenimente facute de utilizator; iar, ajungerea la un anumit cadru a unei animatii sau finalizarea unei actiuni sunt evenimente realizate de elemente din prezentare.
ActionScript 3 contine obiecte si metode speciale pentru detectarea si recunoasterea evenimentelor, in functie de acestea se pot executa anumite instructiuni cand acele evenimente se produc.
Ca majoritatea lucrurilor in ActionScript 3, evenimentul este considerat obiect, deoarece are proprietati unde sunt stocate informatii despre el si metode pentru lucru cu datele lui.
• Pe scurt, un eveniment lucreaza astfel: elementul legat de actiunea produsa, denumit "event target" (eveniment tinta) [un buton apasat, o animatie, etc.) transmite date la script, sub forma unui obiect (denumit "event object"). Scriptul trebuie sa contina o functie speciala cunoscuta ca "event listener" (detector de eveniment), prin care detecteaza evenimentul si preia datele lui pe care apoi le transmite la o functie ce poate efectua diferite comenzi scrise de programator.
Functia /metoda folosita in ActionScript 3 pentru a detecta si captura evenimente este "addEventListener()". E o metoda din clasa "EventDispatcher", si inregistreaza in script detectarea evenimentului specificat in ea.
Sintaxa generala pentru utilizarea acestei metode este:
// Creare "event target" // O instanta a obiectului URLLoader (pt. incarcare date de la o adresa URL var urlLoader:URLLoader = new URLLoader( ); // Aplica metoda "load()" (de incarcare) la instanta URLLoader // La argument creaza o instanta URLRequest pentru specificare adresa fisier urlLoader.load(new URLRequest("un_fisier.txt")); // Setare "event listener", cu eveniment de detectare a finalizarii unei actiuni // Aplicat la "urlLoader", recunoaste cand incarcarea fisierului s-a terminat urlLoader.addEventListener(Event.COMPLETE, campTxt); // Functia care va fi apelata de evenimentul setat function campTxt(evt:Event):void { // Se defineste Instanta de obiect TextField pt. creare camp text var camp_txt:TextField = new TextField(); camp_txt.x = 93; // Distanta fata de marginea din stanga camp_txt.y = 75; // Distanta fata de marginea de sus camp_txt.width = 125; // Lungimea campului de text camp_txt.height = 50; // Inaltimea camp_txt.border = true; // Activeaza afisarea unei borduri // Adauga in campul de text datele incarcate din fisier, stocate in "evt" camp_txt.text = evt.target.data; addChild(camp_txt); // Adauga campul de text in prezentarea Flash }- La inceput trebuie creata o instanta la obiectul "URLLoader", cu aceasta va fi preluat (incarcat in Flash) continutul dintr-un fisier extern. Adresa URL de incarcare trebuie adaugata la aceasta instanta cu obiectul "URLRequest". Aceleiasi instante i-se aplica metoda "addEventListener()", la care se specifica sa recunoasca tipul de eveniment "Event.COMPLETE" (activat la finalizarea unei actiuni, aici cea de incarcare).
Adresa URL a fisierului, adaugata la "URLRequest("URL_fisier")", trebuie sa fie completa sau relativa la prezentarea Flash, in functie de directotul in care se afla.
Pentru a opri un "detector de eveniment" (event listener) setat cu "addEventListener()" sa primeasca notificari despre evenimentul ineregistrat, trebuie stearsa acea inregistrare, cu metoda "removeEventListener()" (apartine clasei "EventDispatcher").
Formula generala de utilizare a acestei metode este
event_target.removeEventListener(EventObject.TIP, oFunctie);
- "event_target" reprezinta instanta la care a fost aplicat detectorul de eveniment "addEventListener()" care trebuie sters.
- "EventObject.TIP" e tipul evenimentului.
- "oFunctie" e functia care a fost setata sa fie apelata.
Este indicata stergerea inregistrarii de detectare a unui eveniment, cand nu mai e necesara in program, deoarece ajuta la eliberarea memoriei folosite si a procesorului.
Evenimentul inregistrat e permanent activ si in legatura cu functia pe care o apeleaza (lucru stocat in memorie) pana cand e sters cu "removeEventListener()".
// Creare "event target" // O instanta a obiectului URLLoader (pt. incarcare date de la o adresa URL var urlLoader:URLLoader = new URLLoader( ); // Aplica metoda "load()" (de incarcare) la instanta URLLoader // La argument creaza o instanta URLRequest pentru specificare adresa fisier urlLoader.load(new URLRequest("un_fisier.txt")); // Setare "event listener", cu eveniment de detectare a finalizarii unei actiuni // Aplicat la "urlLoader", recunoaste cand incarcarea fisierului s-a terminat urlLoader.addEventListener(Event.COMPLETE, campTxt); // Functia care va fi apelata de evenimentul setat function campTxt(evt:Event):void { // Se defineste Instanta de obiect TextField pt. creare camp text var camp_txt:TextField = new TextField(); camp_txt.x = 100; // Distanta fata de marginea din stanga camp_txt.y = 75; // Distanta fata de marginea de sus camp_txt.width = 100; // Lungimea campului de text camp_txt.height = 50; // Inaltimea camp_txt.border = true; // Activeaza afisarea unei borduri // Adauga in campul de text datele incarcate din fisier, stocate in "evt" camp_txt.text = evt.target.data; addChild(camp_txt); // Adauga campul de text in prezentarea Flash // Dupa ce campul e adagat in prezentare, cu continutul incarcat // Sterge inregistrarea de detectare a acestui eveniment, pt. a elibera memoria urlLoader.removeEventListener(Event.COMPLETE, campTxt); }- instructiunea "urlLoader.removeEventListener(Event.COMPLETE, campTxt);" e adaugata in functia "campTxt()" dupa comanda de afisare a campului de text cu continutul incarcat din fisierul extern. Astfel, aceasta instructiune este executata dupa ce se termina rolul evenimentului de preluare a datelor incarcate si afisarea lor, prin urmare nu mai e necesara pasrtrarea lui in memorie.
In mod normal, daca sunt mai multe detectoare de eveniment inregistrate la acelasi obiect (cu tipuri egale sau diferite), ordinea de capturare si declansare a lor e cea in care sunt scrise in script. Dar aceasta ordine poate fi schimbata, folosind un "parametru de prioritate" in metoda "addEventListener()", dupa formula:
event_target.addEventListener(EventObject.TIP, oFunctie, useCapture, prioritate);
- La "useCapture" se pune valoarea false
- "prioritate" e un numar intreg mai mare sau egal decat zero, prin care se determina prioritatea de executie (default are valoarea 0). Detectorul de evenimente cu prioritatea mai mare este declansat inaintea celorlati.
De exemplu, la urmatoarele 2 evenimente inregistrate:
urlLoader.addEventListener(Event.COMPLETE, oFunctie, false, 0); urlLoader.addEventListener(Event.COMPLETE, altaFunctie, false, 1);- Este declansat intai cel cu prioritatea 1, care apeleaza "altaFunctie", apoi, se executa cel setat cu prioritatea 0.
Prima linie ...<br> Alta linie...
#id { letter-spacing: 2px; }
var elm = document.getElementById("theID"); var content = elm.innerHTML; alert(content);
echo "Adresa URL: http://CoursesWeb.net";
She does not paint that landscape. - Ea nu picteaza acel peisaj.
Ella no canta esa canciĆ³n. - Ea nu canta acel cantec.