トップ > Action Script 2.0 > 【小技】個人的に良く使う Action Script 2.0 の関数

【小技】個人的に良く使う Action Script 2.0 の関数

Action Script 3.0 の時は割とクラスを多用する感じになるんだけども、仕事の場合は、まだまだ Action Script 2.0 で作る機会が多い(あくまでも個人的な状況)。

で、2.0 の場合はあまりクラスを利用することが無いので、必然的にいろいろな関数を定義して処理を行っている。

そこで、個人的に良く使う関数をメモ代わりにまとめてみたいと思う。

テキスト検索置換

まぁ、よくあるテキストの検索置換。これは多分、大多数の人が同じような処理で使っている人も多いだろうなー。


function textReplace(T, O, N) {
	var textArray = new Array();
	textArray = T.split(O);
	return textArray.join(N);
}

使い方はこんな感じ。

textReplace(txt:String, stxt:String, rtxt:String);

txt 対象となるテキスト
stxt 検索する文字
rtxt 置換する文字
戻り値:String 検索置換したテキスト

(例)


var txt:String = "ABCDEF";
txt = textReplace(txt, "DEF", "ABC");
trace(txt);//⇒「ABCABC」

縦横比を維持して特定領域にリサイズ

フォトスライドショーなどでよく利用するリサイズ処理。オブジェクトを領域に対してどのようにリサイズするか 2 パターンあり。

領域全てにオブジェクトが表示されるようリサイズ

下図のような感じでリサイズする処理。


function resizeAll(MC, X, Y, W, H) {
	//横に合わせる
	MC._width = W;
	MC._yscale = MC._xscale;
	if (MC._height < H) {
		//縦に合わせる
		MC._height = H;
		MC._xscale = MC._yscale
	}
	MC._x = (W - MC._width) / 2 + X;
	MC._y = (H - MC._height) / 2 + Y;
}

使い方はこんな感じ。

resizeAll(MC:MovieClip, X:Number, Y:Number, W:Number, H:Number);

MC リサイズを行うムービークリップ
X 対象領域のX座標
Y 対象領域のY座標
W 対象領域の幅
H 対象領域の高さ
戻り値 なし

オブジェクトの全てが領域内に表示されるようリサイズ

下図のような感じでリサイズする処理。


function resizeFit(MC, X, Y, W, H) {
	//横に合わせる
	MC._width = W;
	MC._yscale = MC._xscale;
	if (MC._height > H) {
		//縦に合わせる
		MC._height = H;
		MC._xscale = MC._yscale
	}
	MC._x = (W - MC._width) / 2 + X;
	MC._y = (H - MC._height) / 2 + Y;
}

使い方はこんな感じ。

resizeFit(MC:MovieClip, X:Number, Y:Number, W:Number, H:Number);

MC リサイズを行うムービークリップ
X 対象領域のX座標
Y 対象領域のY座標
W 対象領域の幅
H 対象領域の高さ
戻り値 なし

整列座標を配列化

オブジェクトなどを縦横に整列させて配置する場合などに、座標情報を配列化する処理。


function getLineXY(DefX, DefY, divX, divY, n, all, type) {
	//座標格納用の配列を生成
	var arrayLC = new Array();
	//座標計算
	for (i = 0; i < all; i++) {
		var XY = new Object();
		//type = 1の時は縦方向に計算、それ以外は横方向に計算
		XY.x = (type == 1) ? (divX * Math.floor(i / n)+DefX) : (divX * (i % n) + DefX);
		XY.y = (type == 1) ? (divY * (i % n) + DefY) : (divY * Math.floor(i / n) + DefY);
		//配列に座標を格納
		arrayLC.push(XY)
	}
	//配列を返す
	return arrayLC;
}

使い方はこんな感じ。

getLineXY(DefX:Number, DefY:Number, divX:Number, divY:Number, n:Number, all:Number, type:Number);

DefX 原点のX座標
DefY 原点のY座標
divX 水平方向の間隔の数値
divY 垂直方向の間隔の数値
n 1行(列)に配置する個数
all 整列する個数
type 0:水平方向に整列(省略可)/1:垂直方向に整列(省略した場合は0)
戻り値:Array 座標の配列

(例)


var arr:Array = new Array();
arr = getLineXY(100, 100, 50, 20, 6, 15, 0);
trace(arr[0].x)://⇒「100」
trace(arr[0].y)://⇒「100」
trace(arr[9].x)://⇒「250」
trace(arr[9].y)://⇒「120」
trace(arr[14].x)://⇒「200」
trace(arr[14].y)://⇒「140」

図で説明すると下記のような感じとなる。

この記事をブックマークしておく

コメント:0

コメント投稿

コメントを表示する前にこのブログのオーナーの承認が必要になることがあります。

この情報を記憶する

トップ > Action Script 2.0 > 【小技】個人的に良く使う Action Script 2.0 の関数

記事検索
カテゴリ
RSSフィード

このページの先頭へ戻る