Flash Lite用 配列(疑似配列)
2009.6.19 金曜日
以前のブログでアクセス数が意外と多かった記事をもう一度掲載しておきます。まだ需要あるのかな?
0 ~ 42 までの数を重複せずに6個ランダムに出力するプログラム。上がActionScript3とかに近い感じのFlash Lite 2.0用で、下がFlash Lite 1.1用。
Flash Lite 1.1 は配列のArray()クラスがないので”nums” + 整数文字を変数名として擬似的に配列っぽい処理をします。
追記 2009.8.11
下記ページも参考になります。
FACEs:FLASH Lite1.1:擬似配列とメモリコスト
var s:Number = 6;
var t:Number = 42;
var nums:Array = new Array();
for (var i:Number = 0; i < t + 1; i ++) {
nums[i] = i ;
}
var a:Number = t;
while (t --) {
var b:Number = Math.floor(Math.random() * a);
var c:Number = nums[a];
nums[a] = nums[b];
nums[b] = c;
}
//出力テスト
for (i = 0; i < s; i ++) {
trace(nums[i]);
}
s = 6;
t = 42;
for (i = 0; i < t + 1; i ++) {
set("nums" add i, i);
}
a = t;
while (t --) {
b = random(a);
c = eval("nums" add a);
eval("nums" add a) = eval("nums" add b);
eval("nums" add b) = c
}
//出力テスト
for (i = 0; i < s; i ++) {
trace(eval("nums" add i));
}
Posted by tmdf|ActionScript