ページへ戻る
− Links
印刷
Starling+Feathersで画面遷移
の編集 ::
NJF Wiki
xpwiki
:
Starling+Feathersで画面遷移
の編集
# x6e32c33 の編集
ページ内容:
*Screenの初期化の負荷分散 [#x6e32c33] Adobe Airでのアプリ制作の弱点の一つとして、インスタンスの作成などの初期化処理がとても遅いことがあげられる。そのため、cocos2d-xなどに比べると画面遷移でアプリがスタックしたようになりやすい。場合によっては数秒ぐらいアプリがとまったように見えるため、ユーザビリティの観点から致命的となる。 これを防ぐには遷移先の画面の初期化が終わるまでロード画面を表示させるというのがある。しかし、初期化中に単純にロードアニメーションを表示させてもそちらも止まってしまうので意味が無い。 ロード画面の表示させかたとしては、一つはWorkerを使って別スレッドでローダーを実行するというのがある。アプリだとこちらが一般的かも知れない。ただ、WorkerはAirでしか使えないのでWebでも公開している私は使っていない。 もう一つはタイマーで初期化を分散する方法である。つまり、まず初期化関数の配列を定義し、 protected var firstInitFunctions:Vector.<Function> = new Vector.<Function>(); それに初期化処理をpushしていく。 firstInitFunctions.push(function():void { //初期化処理1 }); firstInitFunctions.push(function():void { //初期化処理2 }); firstInitFunctions.push(function():void { //初期化処理3 }); これをタイマーで一つずつ実行していく。 protected var firstInitTimerCnt:int = 0; private function onInitTimerChick(e:TimerEvent):void { firstInitFunctions[firstInitTimerCnt](); firstInitTimerCnt++; if (firstInitFunctions.length <= firstInitTimerCnt) { firstInitFunctions.length = 0; //初期化終わり } } すると処理が分散されるのでローダーのアニメーションはとまらずに実行される。リリースするのがアプリのみならWorkerを使った方が楽かも知れない。
編集の要約:
Q & A 認証:
ページ更新時は次の質問にお答えください。(プレビュー時は必要ありません)
Q:
日本の首都は?(漢字で)
A:
お名前:
タイムスタンプを変更しない
テキスト整形のルールを表示する
[1]
Links list
(This host) = https://njf.jp
(This host)
/cms/modules/xpwiki/?cmd=edit&help=true&page=Starling%2BFeathers%E3%81%A7%E7%94%BB%E9%9D%A2%E9%81%B7%E7%A7%BB