我有一个奇怪的问题:
我分配了以下变量:
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);
}
}
}
}
由于某种原因,事件没有被调度,我在调度事件之前和之后放置的跟踪都被触发了。有人知道为什么派遣活动不起作用?
答案 0 :(得分:0)
通过您发布的代码很难找到问题。轻松检查:确保在调度事件之前添加eventlistener。在添加侦听器的方法中添加跟踪,以确保在分派之前设置该跟踪。
答案 1 :(得分:0)
您的AppModel getInstance()方法是否也在初始化AppModel类?如果是这样,则可能在添加事件侦听器之前调度该事件。
我总是使用这个流程:
1)创建类
的实例2)附加初始化事件监听器
3)调用公共init()方法(即AppModel.instance()。init();)