Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Actionscript 3 Can';t从模型中分派事件_Actionscript 3_Robotlegs - Fatal编程技术网

Actionscript 3 Can';t从模型中分派事件

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

使用机器人腿,我总是能找回这个错误。我不知道怎么了

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 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?