とある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;