Flash / ActionScript プログラムに関する各種メモ書き:タグ「画像」での検索

常に背景を画面にフィットするようウィンドウサイズ変更時に自動で画像をリサイズする

Flashでのリキッドデザインとでも言うのでしょうか、

常に背景を画面にフィットするようウィンドウサイズ変更時に自動で画像をリサイズするサンプルは以下のとおりです。

背景画像(my_mc)を画面にフィットするようにするサンプル

//自動でサイズを変更しない。
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 ファイルは↓からダウンロード

添付ファイル1
No.815
08/23 20:00

edit

添付ファイル

画像
ActionScript2.0

BitmapDataオブジェクトを使って読み込んだ画像をmcヘコピーする

BitmapDataオブジェクトを使って読み込んだ画像をmcヘコピーする

copy_from_mcの画像をtarget_mc へコピーします。(AS2)

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にコピーするたびにメモリを使用します。

コピーされた画像は上に重なるように塗られて行きます。

なので、不要になったら削除するように心がけましょう。


削除するには dispose() します。同時にメモリも解放されます。

またこれを行うと BitmapData オブジェクトのプロパティやメソッドにアクセスできなくなるので、また使用したい場合は再度 new BitmapData() から行います。

bd.dispose();

BitmapData

http://help.adobe.com/ja_JP/AS2LCR/Flash_10.0/help.html?content=00000787.html

No.814
08/11 14:58

edit

ActionScript2.0
画像