Flashでのリキッドデザインとでも言うのでしょうか、
常に背景を画面にフィットするようウィンドウサイズ変更時に自動で画像をリサイズするサンプルは以下のとおりです。
//自動でサイズを変更しない。 Stage.scaleMode = "noScale"; //基準点をLeftTop Stage.align = "LT"; //イベントリスナーに登録。 sListener = new Object(); var _this = this; sListener.onResize = function() { // 例:my_mc のサイズを変更する var rt_array = calc_stage_match_width_height(my_mc._width, my_mc._height); my_mc._width = rt_array[0]; my_mc._height = rt_array[1]; }; Stage.addListener(sListener); // ウィンドウにマッチするサイズを返す function calc_stage_match_width_height(width, height){ var rt_array = new Array(); var rt_width = Stage.width; var rt_height = (Stage.width/width)*height; if (rt_height < Stage.height){ rt_height = Stage.height; rt_width = (Stage.height/height)*width; } rt_array[0] = rt_width; rt_array[1] = rt_height; return rt_array; } // 最初にリサイズする var rt_array = calc_stage_match_width_height(my_mc._width, my_mc._height); my_mc._width = rt_array[0]; my_mc._height = rt_array[1];
サンプルの .fla ファイルは↓からダウンロード
import flash.display.Bitmap; import flash.display.BitmapData; var my_width = copy_from_mc._width; var my_height = copy_from_mc._height; var my_bd:BitmapData; my_bd = new BitmapData(my_width, my_height, false, 0xFFFFCC00); my_bd.draw(copy_from_mc); target_mc.attachBitmap(my_bd, _root.getNextHighestDepth());
なお、同じmcにコピーするたびにメモリを使用します。
コピーされた画像は上に重なるように塗られて行きます。
なので、不要になったら削除するように心がけましょう。
またこれを行うと BitmapData オブジェクトのプロパティやメソッドにアクセスできなくなるので、また使用したい場合は再度 new BitmapData() から行います。
bd.dispose();
BitmapData
http://help.adobe.com/ja_JP/AS2LCR/Flash_10.0/help.html?content=00000787.html