无法在Flash中发送自定义事件

时间:2012-09-30 17:41:03

标签: actionscript-3 flash haxe

我创建了一个自定义事件:

class SomeEvent extends Event {
    public static var SOMETHING_CHANGED = "somethingChanged";

    public var propery1: String;
    public var property2: String;

    override public function clone():Event {
        var evt: GraphicsEvent = new SomeEvent(type, bubbles, cancelable);
        evt.propery1 = propery1;
        evt.propery2 = propery2;
        return evt;
    }
}

之后我将侦听器添加到扩展Sprite的类

class SomeClass extends Sprite {
    public function SomeClass() {
        this.addEventListener(SomeEvent.SOMETHING_CHANGED, somethingChangedHandler);
    }
    ....
    public somethingChangedHandler(e: SomeEvent) {
        trace("Got event!!");
    }
}

最后我发送了一个活动

var e = new SomeEvent(SomeEvent.SOMETHING_CHANGED);
e.propery1 = "AAA";
e.propery1 = "BBB";
dispatchEvent(e);
在此之后,我没有任何痕迹,因此事件并非如此。这是一个问题:做错了什么?

提前谢谢!

UPD:请注意,我发送的课程与SomeClass不同,该课程延伸EventDispatcher

1 个答案:

答案 0 :(得分:2)

您是否从名为SomeClass的班级调度?

var e = new SomeEvent(SomeEvent.SOMETHING_CHANGED);
e.propery1 = "AAA";
e.propery1 = "BBB";
dispatchEvent(e);

必须在SomeClass内才能触发事件处理程序。或者您需要使用SomeClass的实例发送它,如。

var e = new SomeEvent(SomeEvent.SOMETHING_CHANGED);
e.propery1 = "AAA";
e.propery1 = "BBB";
someClassInstance.dispatchEvent(e);