迁移一个简单的Robotlegs应用程序(从1.5到2)

时间:2013-09-06 10:26:28

标签: actionscript-3 mxml robotlegs

我是Robotlegs的新手,并且在第一步中有点挣扎。 为了学习绳索,我遵循Joel Hooks' introduction的第一部分,现在尝试在RL2中创建相同的部分。

我目前的问题是:

  • 哪个方法替换了Context
  • 中的startup()
  • 在上下文中,我不能只使用“mediatorMap”;我是否需要为此创建MediatorMap实例?
  • 在少数RL2示例中,许多开发人员使用IConfig配置他们的主要Context;这是必需的,一个好的约定或可选。
  • ..以及通过这种方式配置上下文?

我花了大部分时间寻找解决方案。如果我错过了显而易见的事,我道歉。 提前感谢任何煽动。

主类的一部分(mxml)

xmlns:context="contexts.*"
    <fx:Declarations>
        <rl:ContextBuilder>
            <context:HelloWorldContext/>
        </rl:ContextBuilder>
</fx:Declarations>  

和(非编译)上下文.as

public class HelloWorldContext extends Context
{       
    public function HelloWorldContext()
    {
        this.install(MVCSBundle);
        this.configure(HelloWorldConfig);

        mediatorMap.map(ButtonView).toMediator(ButtonMediator); // Error: mediatorMap not defined
    }
}

1 个答案:

答案 0 :(得分:2)

  

在上下文中的上下文中,哪个方法替换了startup()

使用context.install安装您要使用的扩展程序。 最常见的是MVCSBundle。 使用带有context.configure参数的(new ContextView)将启动上下文初始化。

  

我不能只使用“mediatorMap”;我需要创建一个   MediatorMap实例为此?   您可以在任何需要的地方注入IMediatorMap,例如在config中       [注入]       public var injector:IInjector;

[Inject]
public var mediatorMap:IMediatorMap;

[Inject]
public var commandMap:ISignalCommandMap;
  

在少数RL2例子中,很多   开发人员使用IConfig配置他们的主要Context;这是   必要的,良好的约定或可选的。 ..以及以何种方式,是   上下文'配置'通过这个?   你可以创建自己的配置。通常,在那里你将映射你的命令,调解员和注射。你创建了一个[PostConstruct]方法,它将调用所有的东西:

如果在config中实现IConfig,则不需要[PostConstruct]标记,因为一旦注入了依赖项,robotlegs将自动调用configure函数。

    [PostConstruct]
    public function init():void {

        context.logLevel = LogLevel.DEBUG;
//        injector.fallbackProvider = new DefaultFallbackProvider();

        mapSignalCommands();
        mapMediators();
        mapInjection();

        context.afterInitializing(afterInit);

    }

在你的情况下你会有

_context:IContext;
public function MainApp()
{
    _context = new Context();
    _context.install(MVCSBundle);
    _context.configure(HelloWorldConfig,new ContextView(this));

        }

mediator事物在mapMediators();

上进行配置