ステージサイズの変更に対応した敷き詰め系コンテンツ
というわけで思いついたものをざっくり作ってみる第2弾です。
今回はフルFlashコンテンツで必須になるステージサイズ変更への対応でも。
本当にざっくりした敷き詰め系コンテンツのサンプルとソースは以下。
(リサイズを試すにはswfを直で開いてください)
Flashのサンプルです。
ソースファイル(resizableContent.zip・Flash CS3
あまり考えずに作ったので、リサイズ毎に敷き詰め対象を全部生成するというとても高コストな感じになっていますが、多少考慮したのはリサイズ時のイベント起動のタイミングです。
Event.RESIZEを単純にリスナー登録した場合、ユーザーがステージサイズを変更している最中にずっとイベントが送出される事になるため、そのタイミングで毎回画面の更新処理を行うのはなんだか煩雑な感じです。
そこで、今回はRESIZEイベントが起こった際にタイマーを回して、ユーザーのサイズ変更がひと段落するのを待つ処理を入れてみました。他にも良いやり方がありそうですが、とりあえず該当部分のソースは以下のような感じ。
//リサイズ対応 private function onResizeHandler( e:Event ):void { if( _resizeTimer.running == true ) { _resizeTimer.removeEventListener( TimerEvent.TIMER_COMPLETE, resizeHandler ); _resizeTimer.reset(); } _resizeTimer.addEventListener( TimerEvent.TIMER_COMPLETE, resizeHandler ); _resizeTimer.start(); } private function resizeHandler( e:TimerEvent ):void { _resizeTimer.removeEventListener( TimerEvent.TIMER_COMPLETE, resizeHandler ); layDown(); }
リサイズ完了と判断するまでのタイミングはフレームレートやコンテンツに応じて調整が必要ですね。
次はこれを踏み台に平面充填でもやってみようかなーと思っています。