Category: ActionScript

Flash Lite 1.1で出来ない事

●スクリプトで、オブジェクトの色を変更することは出来ない。
 →オブジェクトの色を変更する場合は、シンボルに変換した後ツール上で色を変更するしか無い。
   ランダムに色を変える場合、フレーム別に色を変更し、そのフレームのジャンプさせることで色違いのパターンを作るしか無い。
   組み合わせがあった場合、全パターンの色違いを作ることになる。が、これ以外の実装方法は見つけられなかった。

Flash Lite1.1 で配列のインデックスを求める

配列の値からインデックス値を求めるスクリプトです。
関数フレームに記述して使ってください。

//配列のindexを返す
get_ar_ret_1 = "";
tmp = eval( get_ar_args_index add get_ar_args_name );
if( mblength( tmp ) > 0 ) {
	tmp_cnt = 1;
	for( n = 1; n < mblength( tmp ); n ++ ){
		if( mbsubstring( tmp, n, 1 ) eq "/" ){
			if( get_ar_ret_1 eq get_ar_args_node ) {
				get_ar_ret_1 = tmp_cnt;
				break;
			}
			tmp_cnt ++;
			get_ar_ret_1 = "";
		} else {
			get_ar_ret_1 = get_ar_ret_1 add mbsubstring( tmp, n, 1 );
		}
	}
}

使用例

ar_1="26/57/25/56/26/57/27/58/29/59/30/60/22/";

//配列変数名
get_ar_args_index = "ar_";
//1次元目のインデックス
get_ar_args_name = 1;
//2時限目のインデックス
get_ar_args_node = 30;

call( "get_ar" );
//結果取得
ret = get_ar_ret_1;

Flash Lit1.1で2次元配列の実装

とあるFlashを作ったときに実装した関数です。
汎用的だと思っているので、メモっておきます。

関数フレームに下記のソースを記述

get_ar_ret_1 = "";
tmp = eval( get_ar_args_index add get_ar_args_name );
if( mblength( tmp ) > 0 ) {
	tmp_cnt = 1;
	for( n = 1; n < mblength( tmp ); n ++ ){
		if( mbsubstring( tmp, n, 1 ) eq "/" ){
			if( tmp_cnt == get_ar_args_node ) break;
			tmp_cnt ++;
			get_ar_ret_1 = "";
		} else {
			get_ar_ret_1 = get_ar_ret_1 add mbsubstring( tmp, n, 1 );
		}
	}
}

関数フレーム名を"get_ar"1とすると使用するときは

ar_1="26/57/25/56/26/57/27/58/29/59/30/60/22/";
ar_2="31/2/30/1/31/2/32/3/34/4/35/5/32/";
ar_3="36/7/36/7/37/8/38/9/40/10/41/11/55/";
ar_4="42/13/41/12/42/13/43/14/45/15/46/16/66/";
ar_5="47/18/46/17/47/18/48/19/50/20/51/21/77/";
ar_6="52/23/51/22/52/23/53/24/55/25/56/26/88/";

//配列変数名
get_ar_args_index = "ar_";
//1次元目のインデックス
get_ar_args_name = 2;
//2時限目のインデックス
get_ar_args_node = 3;
//上記の場合だと "ar_2" 配列の3番目の要素を取得
//結果は30となる
call( "get_ar" );
//結果取得
ret = get_ar_ret_1;

悔しい罠

“フレーム = 1 :Flash MX テキストフィールドインスタンス名”
なるエラーメッセージに数時間苦しめられました。。。

これが出るケースは、ダイナミックテキストに変数名をつけて、そのダイナミックテキストにプログララマブルにテキストを表示してやろうと代入したら上記のエラーメッセージになるというワケ。

原因はめちゃくちゃシンプル。ダイナミックテキストに”変数名”を付けるべきなのだが、実は”インスタンス名”に名前をいれているのが原因。ツールのプロパティ部分には目立つ部分にインスタンス名のプロパティがあるが、ここに名前を入れても意味が無い。下の方に隠れている変数名の部分に名前を設定すればOK!

ただ、それだけっす!

WordPress Themes