PureMVCアプリで単一のビューを取得して、Starlingを独自のメディエーターで使用し、アプリケーションの他の部分と通信するにはどうすればよいですか?
アプリケーションの残りの部分はスターリングを使用しません。
これまでの私の調査から、スターリングはswfのメインの「ドキュメントクラス」でのみアクティブ化できるように見えますか?
PureMVCアプリで単一のビューを取得して、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
これは、 StarlingContainerStarling.current.nativeStage
コンテキストの外部でイベントをリッスンするのに役立ちます。この方法でメディエータを設定すると、スターリング ビュー コンポーネントを他のビュー コンポーネントと同じように処理したり、通知を送信したりできます。
Starling フォーラムに感謝します。