0

使用robotlegs 我总是检索这个错误。我不知道出了什么问题。

TypeError:错误 #1009:无法访问空对象引用的属性或方法。在 org.robotlegs.mvcs::Actor/dispatch()[/Users/shaun/Documents/Development/Workspaces/GanymedeFB4/robotlegs-framework/src/org/robotlegs/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);
        }
    }
}
4

2 回答 2

2

我不能很好地阅读德语,但我怀疑问题在于您的模型没有被注入事件总线(IEventDispatcher 几乎由 Robotlegs 需要与之通信的所有东西共享)。

你是如何实例化这个的?你是从单元测试中运行这个吗?如果是这样,您需要在模型上设置 eventDispatcher。如果没有,您需要使用 mapClass、mapSingleton 或 mapSingletonOf 来确保您的模型被实例化为作为 Actor 工作所需的东西。

于 2011-11-08T15:30:06.713 回答
0

何时何地创建模型?我敢打赌,您没有注入它的依赖项。该模型应在命令中创建并使用:

var model: PhotoModel = new PhotoModel();
injector.injectInto(model);

然后应该注入 eventDispatcher(Actor 的唯一依赖项)。

于 2012-04-04T18:26:09.130 回答