• 締切済み

flashlite1.1で制作しているのですが

A=1のときB=1 A=2のときB=2 A=3のときB=3 A=4のときB=4 A=5のときB=5 A=6のときB=1 A=7のときB=2 A=8のときB=3 A=9のときB=4 A=10のときB=5 A=11のときB=1 A=12のときB=2 A=13のときB=3 A=14のときB=4 A=15のときB=5 ・ ・ ・ A=20のときB=5 (Aは1,2,3,4,5,6,7,8,9,10,11,12,13,14,15…20) (Bは1,2,3,4,5,1,2,3,4,5,1,2,3,4,5…5) というようにしたい場合、 if(A == 1) {  B=1; } if(A == 2) {  B=2; } if(A == 3) {  B=3; } if(A == 4) {  B=4; } if(A == 5) {  B=5; } if(A == 6) {  B=1; } if(A == 7) {  B=2; } ・ ・ ・ if(A == 20) {  B=5; } というようにスクリプトを書けばよいと思うのですが、 もっと簡潔に書く方法はないでしょうか? 説明がヘタで分かりにくいかもしれませんが、 よろしくお願いします。

みんなの回答

  • BlurFiltan
  • ベストアンサー率91% (1611/1754)
回答No.1

Flash Lite 1.x (Flash 4) には配列がないので eval関数で配列もどきを作って対処することがあります。 書かれていらっしゃるスクリプトを その配列もどきを使ってする方法例↓ //--------------------------------- for (i=0; i<=4; i++) { for (j=1; j<=5; j++) { eval("fakeArr" add (5*i+j)) = j; } } A = 20; B = eval("fakeArr" add A); //--------------------------------- 最初の for文 で fakeArr1 = 1 fakeArr2 = 2 fakeArr3 = 3 fakeArr4 = 4 fakeArr5 = 5 fakeArr6 = 1 fakeArr7 = 2 fakeArr8 = 3 fakeArr9 = 4 fakeArr10 = 5 ~略~ fakeArr19 = 4 fakeArr20 = 5 になります。 A = 20 のとき B = eval("fakeArr" add A); は B = eval("fakeArr" add 20); になりますから B = fakeArr20; で B = 5 になります。

関連するQ&A