一直在弄Flash,现在展示一下如何实现自定义事件,代码如下:
package
{
import flash.events.Event;
/**
* ...
* @author aisajiajiao
*/
public class CustomEvent extends Event
{
//一般用大写字母并加下划线来代替字符串,这样容易检查出错误。
public static const HELLO_WORLD:String = "helloWorld";
public function CustomEvent(type:String,bubbles:Boolean = false,canceable:Boolean = false)
{
super(type,bubbles,cancelable);
}
//下面这两个函数不用重写也可以
override public function clone():Event
{
return super.clone();
}
override public function toString():String
{
return super.toString();
}
}
}
自定义类最好始终重写clone()方法,防止重调时发生强制转换错误。
下面是测试类:
package
{
import flash.display.Sprite;
/**
* ...
* @author aisajiajiao
*/
public class Main extends Sprite
{
private var sprite:Sprite;
public function Main()
{
sprite = new Sprite();
sprite.addEventListener(CustomEvent.HELLO_WORLD, handler);
sprite.dispatchEvent(new CustomEvent(CustomEvent.HELLO_WORLD));
}
private function handler(e:CustomEvent):void
{
trace("事件发生");
trace(e.clone());
trace(e.toString());
}
}
}
代码很简单,看看就懂很简单!