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で入れていたら、
それが動かなくなったというものでした。