如何在我的 PureMVC 应用程序中获得单个视图以使用 Starling 及其自己的中介并与应用程序的其余部分进行通信?
应用程序的其余部分将不会使用八哥。
从我到目前为止的研究来看,starling 似乎只能在 swf 的主要“文档类”上激活?
如何在我的 PureMVC 应用程序中获得单个视图以使用 Starling 及其自己的中介并与应用程序的其余部分进行通信?
应用程序的其余部分将不会使用八哥。
从我到目前为止的研究来看,starling 似乎只能在 swf 的主要“文档类”上激活?
好的,所以我想出了如何做到这一点。你需要知道的几件事。
Starling.current.root
如果您有对 stage 的引用,您几乎可以在任何地方创建您的 starling 实例。所以你的调解员看起来像
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;
}
Event.ROOT_CREATED
重要的部分是在将 viewComponent 设置为 Starling rootClass 之前等待事件。
Starling.current.stage
或使用访问 nativeStageStarling.current.nativeStage
这对于侦听 StarlingContainer 上下文之外的事件很有用。一旦你以这种方式设置了你的中介,你就可以像对待任何其他的 viewComponent 一样对待你的 starling viewComponent,发送通知等。
非常感谢Starling 论坛。