Actionscript Course

Besides the predefined events in ActionScript 3 (MouseEvent, KeyboardEvent, etc.) you can also create other new events (Custom Events), by extending the EventDispatcher class.
- "EventDispatcher" is the base class for events.


To learn how to create a new event, study the following example.
We create a class (named Game) as an extension of the "EventDispatcher" class (see the explanations in code).

Game Class

// Game Class (with a "Custom Event")
package {
  // Imports the classes whose methods are used
  import flash.events.*;           // To be able to use /extend the EventDispatcher Class
  import flash.utils.*;            // Necessary for setTimeout

 // Create the Game class which extends the EventDispatcher
 public class Game extends EventDispatcher
 {
  // Define a constant that will represent the name of the new event
  // Its value gives the name of the event
  public static const GAME_OVER:String = 'gameOver';

  // Private property, used only in the class to store a counting
  private var sec:int = 0;

  // Constructor
  public function Game(end:int)
  {
    // Call the "count()" function with the property "sec" as argument
    count(this.sec);

    // The function "count()" inside the constructor
    function count(sec:int):void
    {
      // If the property 'sec' has the value of 3, calls the "endGame()" method
      if(this.sec==end) endGame();
      else
      {
        trace(sec);                  // Displays in Output the value of the 'sec' parameter
        this.sec = sec+1;            // Modify the value of the "sec" property
        // "this.sec" is the property, 'sec' is the function's parameter

        // Calls the function "count()" every second, with the property "sec" as argument
        setTimeout(count, 1000, this.sec);
      }
    }
  }

  // The private method, called when "sec" reaches the value of the "end" parameter
  // "end" is the constructor's parameter and must be passed when the instance of the classe is created
  private function endGame():void
  {
    // Trigger the event created and represented by this class
    dispatchEvent(new Event(Game.GAME_OVER));
  }
 }
}
- The Game class contains a constant "GAME_OVER" that will represent the event's name, a private property "sec" (used only in the class body) and a private method "endGame()" that will trigger the event created by this class.
- The constructor increments the value of the "sec" property every second, and displays the number in Output panel. When this number becomes equal with the value passed as argument when the instance was created, calls the method "endGame()", that will trigger the event "Game.GAME_OVER".
- This class must be added in a "ActionScript 3.0 Class" document, then saved with the name "Game.as" in the same folder as the FLA document that will use it.

In the Flash document add the following ActionScript code:
// Create an instance of the Game class
var game:Game = new Game(3);

// Register an event listener to detect the Game.GAME_OVER event
game.addEventListener(Game.GAME_OVER, gameOverListener);

// You can also use the value of the GAME_OVER constant ('gameOver', gameOverListener)

// Function called when the event is triggered
function gameOverListener (evt:Event):void
{
  trace('The game is over!');
}
- The event created by the Game class ( Game.GAME_OVER ) is registered as any other type of event, with the "addEventListener()" method applied to this class instance. "Game" represents the event, and "GAME_OVER" is its name.
- When the "sec" property of the Game class reaches the value of 3 ( or any other number added to 'new Game(nr)'), it calls the "endGame()" method, that triggers the event. This action is detected by the event listener registered with "addEventListener()", and will call the "gameOverListener()" function.
- In Output will be displaied:   0 1 2 The game is over!.

Usually the class that represents the event is used in conjunction with another class that access it when declaring the event.


To download the FLA file and "Game.as" with the example from this lesson, click: Creating new events

Daily Test with Code Example

HTML
CSS
JavaScript
PHP-MySQL
Which tag create a highlighted bolded text?
<q> <strong> <em>
<p>Address: <strong>http://CoursesWeb.net/</strong> - Tutorials.</p>
Which of these CSS codes displays the text bolded?
text-size: 18px; font-style: italic; font-weight: 800;
#id {
  font-weight: 800;
}
What JavaScript function can be used to call another function multiple times, to a specified time interval?
setInterval() setTimeout() push()
function someFunction() { alert("CoursesWeb.net"); }
setInterval("someFunction()", 2000);
Click on the correctly defined variable in PHP.
var vname = 8; $vname = 8; $vname == 8;
$vname = 8;
echo $vname;
Creating new events

Last accessed pages

  1. Zodiac Signs PHP code (7112)
  2. jQuery Drag and Drop Rows between two similar Tables (12798)
  3. Creating XML data - E4X in ActionScript 3 (3049)
  4. Execute JavaScript scripts loaded via AJAX (7846)
  5. $_GET, $_POST and $_REQUEST Variables (33719)

Popular pages this month

  1. Courses Web: PHP-MySQL JavaScript Node.js Ajax HTML CSS (301)
  2. Read Excel file data in PHP - PhpExcelReader (107)
  3. The Four Agreements (92)
  4. PHP Unzipper - Extract Zip, Rar Archives (89)
  5. The Mastery of Love (84)