めんどくさいので・・・

by meat18
複数オブジェクトのプロパティ設定がめんどくさいので・・・。
これなら1行で同じプロパティを持つ複数インスタンス生成~変数に代入~表示リストに追加~プロパティ設定まで!
でも逆に余計めんどくさい気がしないでもない。。。
setParam()の第1引数は[対象オブジェクト1,対象オブジェクト2,・・・]
第2引数は[[パラメータ名,対象オブジェクト1の値,対象オブジェクト2の値・・・],[パラメータ名,対象オブジェクト1の値,対象オブジェクト2の値・・・]・・・]
第1引数をそのまま返します。

♥0 | Line 19 | Modified 2010-03-27 13:43:00 | MIT License
play

ActionScript3 source code

/**
 * Copyright meat18 ( http://wonderfl.net/user/meat18 )
 * MIT License ( http://www.opensource.org/licenses/mit-license.php )
 * Downloaded from: http://wonderfl.net/c/92Ni
 */

/*

複数オブジェクトのプロパティ設定がめんどくさいので・・・。
これなら1行で同じプロパティを持つ複数インスタンス生成~変数に代入~表示リストに追加~プロパティ設定まで!
でも逆に余計めんどくさい気がしないでもない。。。
setParam()の第1引数は[対象オブジェクト1,対象オブジェクト2,・・・]
第2引数は[[パラメータ名,対象オブジェクト1の値,対象オブジェクト2の値・・・],[パラメータ名,対象オブジェクト1の値,対象オブジェクト2の値・・・]・・・]
第1引数をそのまま返します。

*/
package {
	import flash.display.Sprite;
	import flash.text.*;
	public class FlashTest extends Sprite{
		public function FlashTest(){
			var tfs:Array = setParam([TextField(addChild(new TextField)),TextField(addChild(new TextField))],[["autoSize","left","left"],["text","その1","その2"],["x",,100]]);
		}
		
		private static function setParam(ar1:Array,ar2:Array):Array{
			for(var l:int = 0;l < ar1.length;l ++){
				for(var a:int = 0;a < ar2.length;a ++){
					if(String(ar2[a][0]) in ar1[l]){
						ar1[l][ar2[a][0]] = ar2[a][l+1] != undefined ? ar2[a][l+1]:ar1[l][ar2[a][0]];
					}
				}
			}
			return ar1;
		}
	}
}