浅谈Flash文本框变量的使用
2009-06-19张侃
张 侃
摘 要:本文给出了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).