airアプリをStalingFrameworkで作っていた時、
StalingFrameworkに制御が移る瞬間(stage3Dに制御が移る瞬間でよいのかな?)に、
描画イベントが効かなくなるという問題があった。
簡単なコードは以下。
public class Main extends Sprite { /** * starlingのエンジン */ private var _starling:starling.core.Starling; /** * コンストラクタ */ public function Main():void { stage.scaleMode = StageScaleMode.NO_SCALE; stage.align = StageAlign.TOP_LEFT; // 基本画面領域の定義 var width:int = 640; var height:int = 960; // 基本領域 var base:Rectangle = new Rectangle(0, 0, width, height); // フル領域 var full:Rectangle = new Rectangle(0, 0, stage.fullScreenWidth, stage.fullScreenHeight); // 表示領域 var viewPort:Rectangle = starling.utils.RectangleUtil.fit(base, full); // ※ここ以降に制御が移ったら、それ以前に定義しておいた描画イベントは効かなくなる // starlingのエンジンを生成 _starling = new starling.core.Starling(Game, stage, viewPort); _starling.stage.stageWidth = width; _starling.stage.stageHeight = height; _starling.simulateMultitouch = false; _starling.addEventListener(starling.events.Event.ROOT_CREATED, function(e:*, game:Game):void { // ゲーム開始 _starling.start(); }); } }
自分の場合、iosでスプラッシュ画面がすぐに終了してしまい、
Starlingの初期化と同時に音声やら画像を一気にロードしていた時間がごまかせなくなった結果、
「now loading」的な描画処理をEnterFrameで入れていたら、
それが動かなくなったというものでした。