9-5 文字欄位陣列
文字欄位也可以用陣列來處理,只是無法直接用陣列來宣告,需用間接方法。在本節中介紹一種技巧,用來產生文字欄位陣列。
結果:
原理:
一、 產生多個空白動態文字欄位
利用createTextField可以建立空白文字欄位實體。令其實體名稱為0_txt, 1_txt, 2_txt,…, n_txt。在[範例1]三五乘法表中,需要有4x6個文字欄位來輸出資料,因此其程式如下:
for(k=0; k≦23; k++){
createTextField(k+”_txt”, k, 0, 0, 50, 50);
}
在上面程式,文字欄位都在(0, 0)位置,寬高皆為50點,但它們所在深度(depth)不同,因此不會被取代。只要位置改變,即可顯示不同文字欄位內的文字。
二、 宣告一個二維陣列
利用前面所介紹技巧,產生一個4x6的二維陣列。令這個二維陣列的名稱為a_txt。其程式如下:
a_txt=Array(4)
for(i=0; i≦3; i++)
a_txt[i]=Array(6);
}
三、 將二維陣列對應多個空白動態文字欄位
flash的陣列可以對應到不同資料型態,其程式如下:
for(i=0; i≦3; i++)
for(j=0; j≦5; j++)
a_txt[i][j]=this[k+”_txt”];
}
}
我們可以用下圖來說明
a_txt[0][0] a_txt[0][1] a_txt[0][2] a_txt[0][3] a_txt[0][4] a_txt[0][5]
0_txt |
1_txt |
2_txt |
3_txt |
4_txt |
5_txt |
6_txt |
7_txt |
8_txt |
9_txt |
10_txt |
11_txt |
12_txt |
13_txt |
14_txt |
15_txt |
16_txt |
17_txt |
18_txt |
19_txt |
20_txt |
21_txt |
22_txt |
23_txt |
a_txt[3][0] a_txt[3][1] a_txt[3][2] a_txt[3][3] a_txt[3][4] a_txt[3][5]
影格1程式:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 |
format1= new TextFormat(); with(format1){ size=20; color=0x000000; align="right" } format2= new TextFormat(); with(format2){ size=20; color=0x0000FF; align="right" } a_txt=Array(4); for(i=0;i<=3;i++){ a_txt[i]=Array(6); } for(k=0;k<=23;k++){ createTextField(k+"_txt",k,0,0,50,50); } k=0; for(i=0;i<=3;i++){ for(j=0;j<=5;j++){ a_txt[i][j]=this[k+"_txt"]; a_txt[i][j]._x=45*(j+1); a_txt[i][j]._y=35*(i+1); a_txt[i][j].slectable=false; k++; } } a_txt[0][0].text="X"; a_txt[0][0].setTextFormat(format2); for(j=1;j<=5;j++){ a_txt[0][j].text=j; a_txt[0][j].setTextFormat(format2); } for(i=1;i<=3;i++){ a_txt[i][0].text=i; a_txt[i][0].setTextFormat(format2); } for(i=1;i<=3;i++){ for(j=1;j<=5;j++){ a_txt[i][j].text=i*j; a_txt[i][j].setTextFormat(format1); } } |
解說:
行01~06:第一種文字欄位格式:
文字大小為20點,黑色字體,文字靠右。
行07~12:第二種文字欄位格式:
文字大小為20點,藍色字體,文字靠右。
行13~16:宣告一個4x6二維陣列a_txt。
行17~19:產生24個空白動態文字欄位0_txt, 1_txt,…, 23_txt。
行20~29:將二維陣列a_txt對應到空白動態文字欄位,並令這些文字欄位以長方形方式由右到左,由上到下排列。而這些文字欄位內的文字不可以被選取。
行30~31:以藍色顯示左上角的”x”符號。
行32~35:以藍色顯示最上第一行1,2,3,4,5數字。
行36~39:以藍色顯示右邊1,2,3數字。
行40~45:以黑色顯示中間兩數相乘結果。