9-2 文字欄位物件
文字欄位有三種,靜態文字、動態文字與輸入文字。動態文字欄位和輸入文字欄位都可設定實體名稱,以及文字欄位關聯的變數。前面章節中只使用靜態文字和動態文字,而動態文字只用關聯變數來設定或取得其文字,文字欄位還有很多屬性。
一、 動態文字與輸入文字欄位常用的屬性
屬性 |
說明 |
_alpha |
文字欄位的Alpha透明值。 |
autoSize |
文字欄位自動調整大小和對齊方式。 |
background |
文字欄位是否有背景色。 true:有,false:沒有(預設值)。 |
backgroundColor |
文字欄位的背景色。 |
border |
文字欄位是否有邊框。 true:有,false:沒有(預設值)。 |
hscroll |
文字欄位目前水平捲動的位置。 |
length |
文字欄位中的字元數。 |
maxChars |
文字欄位可容納最大字元數。 |
multiLine |
文字欄位是否多行。 true:多行,false:單行(預設值)。 |
_name |
文字欄位的實體名稱。 |
password |
文字欄位的文字是否為密碼顯示。 true:是,false:不是(預設值)。 |
tabIndex |
在SWF檔中自訂實體停駐點順序。 |
text |
文字欄位中目前的文字。 |
selectable |
文字欄位內文字是否可被選取。 true:可以(動態文字預設值), false:不可以(靜態文字預設值)。 |
type |
文字欄位的類型。 |
variable |
與文字欄位關聯的變數名稱。 |
_visible |
是否可看見文字欄位。 |
wordWrap |
文字欄位的文字是否允許換行。 true:可以,false:不可以(預設值)。 |
* 與影片片段相同的屬性不再列出。
* 文字欄位實體名稱的後置字串為_txt。
例如:姓名(name_txt),年齡(age_txt)。
二、 createTextField
語法:name_mc.createTextField(name_txt,
depth, x, y, width, height);
功能:建立一個空白文字欄位實體
說明:
1. name_mc:影片片段實體名稱。
2. name_txt:文字欄位實體名稱。
3. depth:文字欄位的深度
4. x:文字欄位的x座標。
5. y:文字欄位的y座標。
6. width:文字欄位的寬度。
7. height:文字欄位的高度。
三、 TextFormat文字欄位格式
語法:format1=new TextFormat();
功能:產生一個文字欄位格式的物件。
語法:name_txt.setTextFormat(format1);
功能:文字欄位實體(name_txt)使用format1文字格式。
TextFormat常用的屬性
屬性 |
說明 |
align |
段落對齊方式,“left”靠左,“center”置中,“right”靠右。 |
color |
文字的顏色。 |
font |
文字字體的名稱。 |
indent |
段落中從左方邊界到第一個字元的縮排點數。 |
italic |
是否用斜體字。 |
leading |
兩行相距垂直距離,以點為單位。 |
size |
文字字體的大小,以點為單位。 |
將一段文字顯示於動態文字欄位,此段文字大小為20點,綠色字體,字首退縮40點即空二個字,二行之間空10點。
結果:
影格1程式:
01 02 03 04 05 06 07 08 09 10 11 12 13 14 |
format1= new TextFormat(); with(format1){ size=20; color=0x0000FF; indent=40; leading=10; } createTextField("paper_txt",1,50,50,400,200); with(paper_txt){ multiline=true;
wordWrap=true; } paper_txt.text="在文字欄位有三種,「靜態文字」、「動態文字」和「輸入文字」。靜態文字欄位在程式執行中不能改變所顯示文字內容。動態文字欄位和輸入文字欄位才能在程式執行時改變其屬性。這兩種都可以指定實體名稱。輸入文字欄位可以接受由鍵盤輸入文字"; paper_txt.setTextFormat(format1); |
解說:
行02∼07:文字欄位格式。
行03:文字大小為20點。
行04:文字顏色為藍色。
行05:字首內縮40點,為2個中文字寬。
行06:行距為10點。
行08:在主場景產生一個paper_txt空的文字欄位,位置在(50,50),寬為400,高為200。
行09∼14:設定文字欄位paper_txt屬性。
行10∼11:可多行顯示文字。
行13:文字欄位的內容文字。
行14:paper_txt文字欄位實體以format1文字格式顯示。
四、 Selection.setFocus方法
語法:Selection.setFocus (name_txt);
功能:文字欄位實體取得焦點。
說明:
1. name_txt:文字欄位實體名稱。
2. 若文字欄位為輸入文字,在文字實體中會出現文字輸入指標,等待由鍵盤輸入文字。
電腦隨機出現兩個整數(1~10),輸入答案後,按「ok」鈕,判斷答案是否正確,若正確則顯示“答對了!”,否則顯示“答錯了!”並給正確答案。
1. 電腦隨機出題(1~10以內整數)。
2. 使用者輸入正確答案,按「ok」鈕,顯示“答對了!”。
3. 使用者輸入錯誤答案,按「ok」鈕,顯示“答錯了!”,並給正確答案。
【文字欄位】圖層
num1_txt num2_txt ans_txt(輸入文字欄位)
result_txt ok_btn
影格1程式:
01 02 03 04 05 |
num1=Math.ceil(10*Math.random()); num2=Math.ceil(10*Math.random()); num1_txt.text=num1; num2_txt.text=num2; Selection.setFocus(ans_txt); |
解說:
行01∼02:產生二個1~10之間隨機整數。
行03∼04:將數值顯示於動態文字欄位(num1_txt, num2_txt)。
行05:將輸入游標顯示於輸入文字欄位(ans_txt)。
『OK』按鈕程式:
01 02 03 04 05 06 07 08 |
on (press) { if(Number(ans_txt.text)==(num1+num2)){ result_txt.text="答對了!"; }else{ result_txt.text="答錯了!"+newline; result_txt.text+="正確答案是"+(num1+num2); } } |
解說:
行02:由鍵盤所輸入的數字為字串型態資料,需用Number函數轉為數值資料。num1+num2為正確答案。
行03:秀出正確答案回饋。
行05:秀出錯誤答案回饋。