Actionscript 3 Can';t从模型中分派事件
使用机器人腿,我总是能找回这个错误。我不知道怎么了 TypeError:Error#1009:无法访问null的属性或方法 对象引用。 在org.robotlegs.mvcs::Actor/dispatch()[/Users/shaun/Documents/ 开发/工作区/GanymedeFB4/机器人腿框架/src/org/ 机器人腿/mvcs/Actor.as:57] 型号Actionscript 3 Can';t从模型中分派事件,actionscript-3,robotlegs,Actionscript 3,Robotlegs,使用机器人腿,我总是能找回这个错误。我不知道怎么了 TypeError:Error#1009:无法访问null的属性或方法 对象引用。 在org.robotlegs.mvcs::Actor/dispatch()[/Users/shaun/Documents/ 开发/工作区/GanymedeFB4/机器人腿框架/src/org/ 机器人腿/mvcs/Actor.as:57] 型号 package com.something.model { // someimports public
package com.something.model {
// someimports
public class PhotoModel extends Actor {
public function uploadAndDetect() : void {
// something
dispatch(new DetectEvent(DetectEvent.DETECTED));
}
}
}
事件
package com.something.events {
// someimports
public class DetectEvent extends Event {
public static const DETECTED : String = "DETECTED";
public function DetectEvent(type:String, bubbles:Boolean = false, cancelable:Boolean = false){
super(type, bubbles, cancelable);
}
override public function clone():Event{
return new DetectEvent(type, bubbles, cancelable);
}
}
}
我不能很好地阅读德语来确定,但我怀疑问题在于你的模型没有被注入事件总线(IEventDispatcher由几乎所有机器人腿需要交流的东西共享)
你是如何实例化的?你是通过单元测试来运行它的吗?如果是这样,则需要在模型上设置eventDispatcher。如果没有,您需要使用mapClass、mapSingleton或mapSingletonOf来确保您的模型实例化了作为参与者所需的内容。何时何地创建模型?我敢打赌,您没有注入它的依赖项。 应在命令中创建模型,并使用:
var model: PhotoModel = new PhotoModel();
injector.injectInto(model);
然后应该注入eventDispatcher(Actor的唯一依赖项)。第97行在Actor.as上说了什么?请注意,您不需要创建自定义事件来声明新的事件常量。除非您携带的是类型以外的有效负载,否则最好只创建一个类,将事件常量列为静态成员。@joncys:Actors.as是robotlegs的一部分framework@AmyBlankenship谢谢我知道这一点。我在我的上下文中这样做:injector.mapSingleton(PhotoModel);Amy是对的,这与EventDispatcher未初始化有关。您可能在加载完上下文之前发送了模型事件。Fabian,只是想检查一下。。。实例化模型的唯一方法是允许注入器创建模型,对吗?是否在模型的构造函数中调用uploadAndDetect?