9-5 文字欄位陣列

文字欄位也可以用陣列來處理,只是無法直接用陣列來宣告,需用間接方法。在本節中介紹一種技巧,用來產生文字欄位陣列。

 

 


結果:

 

 

 

 

 

 

 


原理:

一、 產生多個空白動態文字欄位

利用createTextField可以建立空白文字欄位實體。令其實體名稱為0_txt, 1_txt, 2_txt,…, n_txt。在[範例1]三五乘法表中,需要有4x6個文字欄位來輸出資料,因此其程式如下:

for(k=0; k23; k++){

createTextField(k+”_txt”, k, 0, 0, 50, 50);

}

在上面程式,文字欄位都在(0, 0)位置,寬高皆為50點,但它們所在深度(depth)不同,因此不會被取代。只要位置改變,即可顯示不同文字欄位內的文字。

二、 宣告一個二維陣列

利用前面所介紹技巧,產生一個4x6的二維陣列。令這個二維陣列的名稱為a_txt。其程式如下:

a_txt=Array(4)

for(i=0; i3; i++)

a_txt[i]=Array(6);

}

三、 將二維陣列對應多個空白動態文字欄位

flash的陣列可以對應到不同資料型態,其程式如下:

for(i=0; i3; i++)

for(j=0; j5; 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:以黑色顯示中間兩數相乘結果。