Actionscript 3 Starling和PureMVC
我如何在我的PureMVC应用程序中获得一个视图来使用Starling和它自己的中介并与应用程序的其余部分通信 应用程序的其余部分将不使用starlingActionscript 3 Starling和PureMVC,actionscript-3,puremvc,starling-framework,Actionscript 3,Puremvc,Starling Framework,我如何在我的PureMVC应用程序中获得一个视图来使用Starling和它自己的中介并与应用程序的其余部分通信 应用程序的其余部分将不使用starling 从我到目前为止的研究来看,似乎starling只能在swf的主“文档类”上激活?好的,所以我想出了如何做到这一点。 一些你需要知道的事情 虽然Starling感觉像一个黑匣子/围墙花园,但在最新版本中,您确实可以通过Starling.current.root 如果您有对stage的引用,您可以在任何地方创建starling实例。所以你的调解人
从我到目前为止的研究来看,似乎starling只能在swf的主“文档类”上激活?好的,所以我想出了如何做到这一点。 一些你需要知道的事情
Starling.current.root
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;
}
事件。ROOT\u创建了
事件Starling.current.stage
访问starging stage3d上下文,或使用Starling.current.nativeStage
访问nativeStage这对于侦听StarlingContainer上下文之外的事件非常有用非常感谢。这很好,但是如果将多个Starling实例与可能的Away3D实例组合在一起,会怎么样?您是否会使用PureMVC代理来表示本例中的stage3D实例?我想这应该是一个评论?但是是的,您可以将stage3D上下文传递到starling实例中,并使用代理来管理它。您肯定不会使用代理与stage3D实例(或Away3D)交互。代理用于提供对应用程序数据和远程服务的访问。多亏了克里夫的反馈,我认为混淆的部分原因在于Away3d引用Stage3D实例的方式。特别是Stage3Dmanager类的getFreeStage3DProxy()和View3D类的相关stage3DProxy属性,因此,尽管从语义上讲,将其称为“中介”是有意义的,但实际上我不确定。如果您查看lee Brimelow的教程,他同时拥有initStarling和initAway3D方法,在PureMVC世界中,这将分别是Starling和Away3D mediator onRegister方法的一部分。