dispatchevent不起作用

时间:2010-12-15 19:09:35

标签: actionscript-3

我有一个奇怪的问题:

我分配了以下变量:

public static const SERIES:String = "series";

然后在同一个班级,我有以下功能:

public function imgCompleteHandler(e:Event):void {
            var slidesXML:XML = new XML(e.target.data);
            for each (var serie:XML in slidesXML.slide){
                this.thumbs = serie.image;
                series.push(serie);
            }
                        trace("before");    
            dispatchEvent(new Event(SERIES));
                        trace("after");
        }

这是调用事件的类:

package be.devine3.groep6.view.components.overview
{
    import be.devine3.groep6.model.AppModel;
    import be.devine3.groep6.view.components.series.Series;
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.Event;

    public class SerieOverview extends Sprite
    {
        private var loader:Loader;
        private var appModel:AppModel;
        public function SerieOverview()
        {
            this.appModel = AppModel.getInstance();

            appModel.addEventListener(AppModel.SERIES, seriesLoadedHandler);
        }
        public function seriesLoadedHandler(e:Event):void{
            for each (var slideModel:XML in appModel.series) {
                var serie:Series = new Series(slideModel);
                addChild(serie);
            }
            }


    }
}

由于某种原因,事件没有被调度,我在调度事件之前和之后放置的跟踪都被触发了。有人知道为什么派遣活动不起作用?

2 个答案:

答案 0 :(得分:0)

通过您发布的代码很难找到问题。轻松检查:确保在调度事件之前添加eventlistener。在添加侦听器的方法中添加跟踪,以确保在分派之前设置该跟踪。

答案 1 :(得分:0)

您的AppModel getInstance()方法是否也在初始化AppModel类?如果是这样,则可能在添加事件侦听器之前调度该事件。

我总是使用这个流程:

1)创建类

的实例

2)附加初始化事件监听器

3)调用公共init()方法(即AppModel.instance()。init();)