Pe langa evenimentele (events) prestabilite in ActionScript 3 (MouseEvent, KeyboardEvent, etc.) pot fi create si altele noi (Custom Events), prin extinderea clasei EventDispatcher.
- "EventDispatcher" e clasa de baza pt. evenimente.
// Clasa Game (cu un "Custom Event") package { // Importa clasele a caror metode sunt folosite import flash.events.*; // Pt. a putea utiliza /extinde clasa EventDispatcher import flash.utils.*; // Necesara pt. setTimeout // Creare clasa Game ca extindere la EventDispatcher public class Game extends EventDispatcher { // Se defineste o constanta ce va reprezenta numele noului eveniment // Valoarea ei da numele evenimentului public static const GAME_OVER:String = 'gameOver'; // Proprietate privata, folosta doar in clasa pt. retinerea numaratorii private var sec:int = 0; // Metoda constructor a clasei public function Game(end:int) { // Apeleaza functia "numara()" cu proprietatea "sec" ca argument numara(this.sec); // Functia "numara()" in cadrul constructorului (apelata prin instructiunea de mai sus) function numara(sec:int):void { // Daca proprietatea 'sec' are valoarea 3, apeleaza metoda "endGame()" if(this.sec==end) endGame(); // Altfel else { trace(sec); // Afiseaza in Output valoaarea parametrului 'sec' this.sec = sec+1; // Modifica valoarea proprietatii "sec" cu cea din parametru + 1 // "this.sec" este proprietatea, 'sec' simplu e parametru functiei // Apeleaza functie "numara" la fiecare secunda, cu proprietatea "sec" ca argument setTimeout(numara, 1000, this.sec); } } } // Metoda privata, apelata cand "sec" ajunge la valoarea parametrului "end" // "end" e parametru metodei constructor si trebuie transmis la crearea instantei clasei private function endGame():void { // Declanseaza evenimentul creat si reprezentat de aceasta clasa dispatchEvent(new Event(Game.GAME_OVER)); } } }- Clasa Game contine o constanta "GAME_OVER" care va reprezenta numele evenimentului, o proprietate privata "sec" (folosita doar in corpul clasei) si o metoda privata "endGame()" care declanseaza evenimentul creat si reprezentat de aceasta clasa.
// Creare instanta la clasa Game, cu un numar ca argument var game:Game = new Game(3); // Inregistrare pt. detectarea evenimentului Game.GAME_OVER game.addEventListener(Game.GAME_OVER, gameOverListener); // Se poate folosi si ('gameOver', gameOverListener), // cu numele evenimentului ca parametru 'gameOver', valoarea data in clasa la GAME_OVER // Functia apelata cand evenimentul e declansat function gameOverListener (evt:Event):void { trace('Jocul s-a terminat!'); }- Observati cum e inregistrat evenimentul creat de clasa Game ( Game.GAME_OVER ), ca oricare alt tip de eveniment din ActionScript, cu "addEventListener()" aplicat la instanta acestei clase. "Game" este evenimentul si "GAME_OVER" numele lui.
De obicei clasa prin care e creat evenimentul nou se foloseste in combinatie cu alta clasa pe care o apeleaza la declansarea evenimentului.
<input type="checkbox" name="a_name" value="value" checked="checked" />
#id { background:url("path_to_image.png"); background-size:contain; background-repeat:no-repeat; }
var rest8_7 = 8 % 7; alert(rest8_7);
$nr = ceil(3.5); echo $nr; // 4
Alex wants to buy a bike. - Alex vrea sa cumpere o bicicleta.
LeĆ unos libros. - Am citit niste carti.