2005/11/03 | EventDispatcher的用法
类别(Flash) | 评论(0) | 阅读(358) | 发表于 15:18
类文件:AScript.as:
import mx.events.EventDispatcher;//导入该类
class AScript {
    var square_mc:MovieClip;
    //定义该类所必须实现的三个方法
    function dispatchEvent() {
    }
    function addEventListener() {
    }
    function removeEventListener() {
    }
    //发送该类自身的实例到初始化事件
    function AScript() {
        mx.events.EventDispatcher.initialize(this);
    }//自定义类的一个方法
    function drowIt(clip:MovieClip) {
        clip.createEmptyMovieClip("square_mc", clip.getNextHighestDepth());
        this.square_mc = clip.square_mc;
        square_mc.beginFill(0xFF0000);
        square_mc.moveTo(10, 10);
        square_mc.lineTo(100, 10);
        square_mc.lineTo(100, 100);
        square_mc.lineTo(10, 100);
        square_mc.lineTo(10, 10);
        square_mc.endFill();
        //该事件被广播以后,这个事件的对象能被传递到任何一个监听对象当中,所以需要指定一个目标的对象和触发的事件名称
        //这里的对象是他本身,当然也可以指定其他的对象
        var eventObject:Object = {target:this, type:"drown"};
        //为该对象定义两个属性
        eventObject.A = "square";
        eventObject.B = clip.square_mc;
        //派遣该对象
        dispatchEvent(eventObject);
    }
}
-----------
fla文件:AS.fla
var AS:AScript = new AScript();//实例化类
var mylis = new Object();//定义一个监听的对象
mylis.drown = function(obj) {//定义一个监听对象的方法,这里与类中指定的目标对象的方法对应
    trace(obj.A);//传递的参数因为是目标对象,所以这里可以实现该对象的方法和属性
    trace(obj.B);
};
AS.addEventListener("drown", mylis);//注册该监听对象及其方法到实例上
AS.drowIt(_root);//触发事件。。。
0

评论Comments

日志分类
首页[185]
Flash[123]
ColdFusion[2]
Flex[2]
FlashMedia[3]
RIA[4]
Other[43]
Python[0]
Design[8]