【问题标题】:Starling and PureMVCStarling 和 PureMVC
【发布时间】:2013-01-06 08:51:32
【问题描述】:

如何在我的 PureMVC 应用程序中获得单个视图,以将 Starling 与它自己的中介一起使用并与应用程序的其余部分进行通信?

应用程序的其余部分不会使用starling。

从我目前的研究来看,starling 似乎只能在 swf 的主要“文档类”上激活?

【问题讨论】:

  • 这很好,但是如果将 1 个以上的 Starling 实例与可能的 Away3D 实例结合起来呢?您会像本例那样使用 PureMVC 代理来表示 stage3D 实例吗? adobe.com/devnet/flashplayer/articles/…stackoverflow.com/users/…
  • 我认为这应该是一个评论?但是,是的,您可以将 stage3D 上下文传递到 starling 实例,并使用代理来管理它。
  • 您绝对不会使用代理与 Stage3D 实例(或 Away3D)进行交互。代理用于提供对应用程序数据和远程服务的访问。调解员更合适。
  • 感谢悬崖的反馈
  • 我认为部分混淆在于 Away3d 引用 Stage3D 实例的方式。特别是 Stage3Dmanager 类的 getFreeStage3DProxy() 和 View3D 类的关联 stage3DProxy 属性 因此,尽管在语义上,在实践中将其称为“中介”是有意义的,我不确定。如果您查看 lee Brimelow 的教程 gotoandlearn.com/play.php?id=166,他同时拥有 initStarling 和 initAway3D 方法,在 PureMVC 世界中,它们将分别成为 Starling 和 Away3D 调解器 onRegister 方法的一部分。

标签: actionscript-3 puremvc starling-framework


【解决方案1】:

好的,所以我想出了如何做到这一点。 您需要了解的几件事。

  1. 虽然 Starling 感觉就像一个黑盒子/围墙花园,但您确实可以通过 Starling.current.root 在最新版本中获得对 rootClass 的引用
  2. 如果您引用了舞台,您几乎可以在任何地方创建您的椋鸟实例。所以你的调解员可以看起来像

    override public function onRegister():void {
        starlingInstance = new Starling(StarlingContainer, stageReference);
        starlingInstance.addEventListener(starling.events.Event.ROOT_CREATED, onStarlingRootCreated);
        starlingInstance.viewPort = new Rectangle(x, y, width, height);
        starlingInstance.start();
    }
    
    private function onStarlingRootCreated(event:starling.events.Event):void {
    
        viewComponent = Starling.current.root as StarlingContainer;
    }
    
  3. 重要的部分是在将 viewComponent 设置为 Starling rootClass 之前等待 Event.ROOT_CREATED 事件。

  4. 您可以使用 Starling.current.stage 访问启动 stage3d 上下文或使用 Starling.current.nativeStage 访问 nativeStage 这对于侦听 StarlingContainer 上下文之外的事件很有用。

一旦你以这种方式设置了你的中介,你就可以像对待任何其他 viewComponent 一样对待你的 starling viewComponent,发送通知等。

非常感谢Starling forums

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-27
    • 1970-01-01
    • 2017-04-26
    相关资源
    最近更新 更多