張 侃
摘 要:本文給出了Flash8文本框變量的使用方法,比較了不同情況使用變量的效果,給出了數值運算時變量的使用方式。
關鍵詞:Flash 變量 文本框
在Flash 8動畫制作過程中,經常會使用文本框進行界面設計。在界面上增加文本框后,然后在AtionScript腳本編程中,經常會面臨著引用文本框的問題。一般來說,可以通過文本框的Text屬性來引用文本框的內容。例如,這里有一文本框為NameText,可以用NameText.Text來引用文本框輸入的內容,或者向文本框賦值。
此外,文本框可以設置為輸入文本或動態文本,同時還可以給文本框賦一個變量,使得加進來的變量與動畫播放時文本框中輸入的值相一致,然后就可以直接通過變量來操作文本框了。
但是,在不同的操作環境中,對文本框的引用方式是不同的。在Flash8中,設置的變量是字符串,而不是數值類型,這一點經常被忽視。另外,設置的變量不能直接參加數值運算。若要進行數值運算,必須使用Text屬性的形式,同時要用Number函數進行類型轉換。
一、實例分析
1.驗證
例如,現有下面一個界面:
這里面有一個輸入文本框t1,對應變量為a1;一個動態文本框t2,對應變量為a2。
按鈕的AtionScript 2.0腳本代碼為:
on(release){
a2=a1+3
}
如果輸入66,則輸出為663。
這說明變量a1,a2都為字符串類型。
若按鈕的腳本代碼改為:
on(release){
a2=Number(t1.text)+3
}
如果輸入66,則輸出為69。
這是參與數值運算的正確書寫形式。
若按鈕的腳本代碼改為:
on(release){
a2=Number(a1)+3
}
如果輸入66,則輸出為NaN。
這說明變量不能直接參與數值運算。
2.實例
下面以一個具體的實例加以說明。
本實例是求二元一次方程組的根,二元一次方程組的各個系數要通過動畫播放時的界面來輸入。下面是制作的界面:
同時在屬性窗口中設置第一個方程的系數對應的變量為a1,b1,c1;第二個方程的系數對應的變量為a2,b2,c2。方程的解x和y對應的變量為r1,r2。
下面是求解按鈕的AtionScript 2.0腳本代碼:
on(release){
a11=Number(at1.text)
b11=Number(bt1.text)
c11=Number(ct1.text)
a21=Number(at2.text)
b21=Number(bt2.text)
c21=Number(ct2.text)
if ((a11 * b21 == a21 * b11) and (a11*c21 != a21 * c11)) {
r1 = "無解";
r2 = "無解";
} else if ((a11 * b21 == a21 * b11) and (a11*c21 == a21 * c11)) {
r1 = "無窮解";
r2 = "無窮解";
} else {
temmp1 = a11 * b21 - a21 * b11;
temmp2 = c11 * b21 - c21 * b11;
r1 = temmp1 / temmp2;
temmp1 = b11 * a21 - b21 * a11;
temmp2 = c11 * a21 - c21 * a11;
r2 = temmp2 /temmp1;
}
}
其中,at1,bt1 ,ct1 和at2,bt2 ,ct2都是文本框實例的名稱,分別代表兩個方程的系數。
從上面的代碼中可以看到:要參與數值運算,必須使用文本框Text屬性的形式,同時必須使用Number函數把字符串轉換為數值,才能正確進行運算。
另一方面,當把一個具體的數值顯示在文本框中時,可以直接把此數值賦給文本框所屬的變量。具體情況,如上例所示。
二、結束語
在AtionScript腳本編程中,給文本框加變量,可以方便編程,減少代碼量。但是,要注意文本框表示的數據的類型。一般情況下,它隱含的是字符串類型,當它參加數值運算時,要注意使用文本框的Text屬性值的形式,并用Number函數進行顯式的轉換,而不能直接使用變量來參與運算。否則,會出現意想不到的錯誤。
參考文獻
[1]張國全,孫全黨,龍懷冰.Flash 8中文版精品動畫制作100例[M].北京:電子工業出版社,2006.
[2]黃東,石偉玉.Flash MX 2004中文版入門與提高實用教程[M].北京:中國鐵道出版社,2004.
[3]謝平.對FLASH加載外部變量的研究[J].北京教育學院學報(自然科學版),2008(8).