Flash as定制课件中常用到的文本和字符串
创建文本框
在创作环境中创建文本框
在创作环境中创建文本框很简单,新建一flash文件,用文本工具在舞台上画一个文本框,这样文本框就建好了.文本框建好后,需要进行设置.现在打开属性面板.首先要确定文本框的类型,点开类型下拉列表可以看到共有三种文本框类型可供选择:静态文本、动态文本、输入文本.静态文本相当于标签,在AS中不能进行操作,本课程不介绍.以下文本框均是指动态文本和输入文本.动态文本和输入文本可在运行时进行操作.动态文本是运行时动态改变文本问容;输入文本是在运行时可由用户输入文本内容.为了在AS中对其进行操作应在属性面板中为其命名.有两种方法可以读取和设置文本框的内容,一种方法是设置或读取文本框的text属性.text属性代表文本框的内容.
例:在舞台上画一文本框,设置其类型为动态文本,为其取名为mytext1_txt.然后在帧动作面板中输入:
mytext1_txt.text="动态文本框"
测试影片,文本框中将显示"动态文本框".
在属性面板中,还可以设置大小、位置、字体、字体大小、颜色、边框等属性.
设置和读取文本内容的另一个方法是给文本框设置变量.这种方法现在不推荐使用,而主张使用text属性.在属性面板的右下部有一"变量"文本框,在这里可以为文本框设一变量,那么这一变量就代表文本框的内容.例我们在这里输入a,然后将帧动作中的代码改为:
a="动态文本框"
测试影片,文本框中同样显示"动态文本框".
运行时创建文本框
运用TextField类的createTextField()方法可以在运行时创建文本框.格式为:
createTextField(名称,深度,x坐标,y坐标,宽度,高度)
深度:相当于层的概念,深度数字越大就越在上面.同一深度只能包含一个对象,如果在同一深度添加新的对象,那么新的对象会覆盖同一深度上原来的对象.关于深度的详细内容将在影片剪辑课程中介绍.
x、y:创建的文本框的注册点,注册点位于文本框的左上角.
例:新建一flash文件,打开帧动作面板,输入:
This.createTextField("my_txt",1,100,100,200,50);
my_txt.border=true;
my_txt.text="动态创建的文本框";
测试影片,将看到一个文本框,文本内容是:"动态创建的文本框".
本例动态创建了一个文本框,然后设置了文本框的两个属性:
border:设置文本框是否有边框
text:设置文本框的内容.
文本框还有很多属性,将在后续章节介绍.
删除文本框:
对于用createTextField()创建的文本框可以用removeTextField()方法来删除.
例:在舞台上放一按钮,并为其命名为:del_btn.
然后在帧动作面板中输入:
This.createTextField("my_txt",1,100,100,200,50);
my_txt.border=true;
my_txt.text="动态创建的文本框";
del_btn.onRelease=function(){
my_txt.removeTextField();
}
测试影片,将看到一个文本框,文本内容是:"动态创建的文本框".点击按钮时,文本框被删除
练习:算术练习器
本练习由程序出100以内的加减乘除题,由用户计算,再由程序判定计算是否正确.通过本练习可以实践各种文本框的应用,同时也可对前面各课介绍的基础知识进行综合应用,如函数,条件语句,数组,运算符等.下面来制作这个练习器:
新建一flash文档:
1.用文本工具在舞台上方居中画一文本框,打开属性面板,选择静态文本,设置好字体、大小、颜色等属性.在文本框中输入:"算术练习器".
2.在稍下面一点再画一个文本框,类型为动态文本,设置其它属性.不要边框.该文本框用于显示算术题目,文字较多,且要显示两行,所以请选择"多行".将该文本框命名为:tm_txt.
3.在下面再画一文本框,类型为输入文本.命名为da_txt.该文本用于用户输入答案.设置其它属性.点下边框按钮.需要注意的是,在属性面板右下角,有一"自动调整字距"选项框,切莫打钩.因为该文本框中输入的内容为数字,此项打钩后文本内容将变为字符,那么将会导至后续程序失败.所以请记住凡是需要参加计算的数字文本不能选择此项.
4.新建两个按钮元件,标签分别为:"确定"、"下一题",将两个按钮放到舞台下方,注意应与第三个文本框之间间隔一定距离,因为我们还要在运行时创建一个文本框用于显示答题的结果.打开属性面板,将两个按钮分别命名为:qd_btn、xyt_btn.
5.好了现在开始写代码:新建一层,命名为:action,打开帧动作面板
首先声明三个变量用来存放两个参与计算的数字及答案.
var a:Number;
var b:Number;
var jg:Number;
下面开始出题,程序刚打开时首先应出好题目,做完一道题点击下一题时又要出一次题目,这就是说出题的代码将重复使用,请养成良好的习惯,将要重复使用的代码做成函数,以免重复输代码.我们也借此练习一下函数的声明及调用.接着写代码:
function ct(){ //声明了一个叫ct的函数
a=random(99)+1;//加1就避免了算数出现0的情况.
b=random(99)+1;
var ysfz:Array=new Array("+","-","*","/");//声明了一个数组用于存放运算符.
var ysfs =random(4);//产生一个0一3的随机数用于提取数组ysfz中的运算符.
var ysf=ysfz[ysfs];//提取了运算符.
tm_txt.text="请计算:"+a+ysf+b+newline+"除法请去掉余数";//通过动态文本框将题目显示出来
switch(ysfs){ //用一个条件语句计算结果
case 0:
jg=a+b;
break;
case 1:
jg=a-b;
break;
case 2:
jg=a*b;
break;
case 3:
jg=int(a/b);
break;
}
}
ct();//调用ct()函数,题就出好了.
接下来是点击”确定”按钮时,判断用户是否回答正确,并给出结论:
qd_btn.onRelease = function(){
createTextField("jg_txt",0,170,250,200,50);//在运行时创建了一个文本框,这里文本框的坐标就根据实际位置确定.
if(da_txt.text ==jg){ //如果用户在输入文本中输入的数字等于题的结果
jg_txt.text = "回答正确";//创建的文本框显示”回答正确”
} else { //否则
jg_txt.text = "回答不正确";//创建的文本框显示”回答不正确”
}
}
最后是点击”下一题”按钮时,重新出题,输入文本框清空,删除运行时创建的文本:
xyt_btn.onRelease=function(){
da_txt.text="";//清空输入文本
jg_txt.removeTextField();//删除运行时创建的文本
ct();//调用ct()函数重新出题.
}