如图6-4-1所示的画面上,有5个动态文本对象,当范例运行时,通过LoadVariables命令加载外部的“question.txt”文件中的变量,然后把变量分别显示在这5个动态文本对象上。
我们先看看“question.txt”文件的内容,如图6-4-2所示。
[h2]
图6-4-2 “question.txt”文件
说明:将要创建的文本文件必须保存为Unicode格式,否则加载的中文将显示乱码。如果你使用Windows98系统,那么【记事本】程序将不能创建Unicode格式的文本文件,这时你必须借助其他方法来创建Unicode格式的文本文件,比如你可以使用Dreamweaver来编辑文本文件。
“question.txt”文件中定义了一些关于测验题目的变量,每个文本文件中都是定义了5个变量。变量question定义的是这道测验题目的问题文本,变量answer1 ~ answer4定义的是这道测验题目的 4 个备选答案文本。这5个变量将来就加载并分别显示在影片的5个动态文本中(文本对象的变量名称和相应变量的名字一样)。
说明:在编写文本文件时要注意,每个变量之间一定要用 & 符号隔开,另外在定义完最后一个变量以后,不要回车换行,让光标停留在最后一个字符后面。
我们再来看看影片源文件“利用loadVariables调用外部变量.fla”。如图6-4-3是这个影片文档的主时间轴图层结构。
图6-4-3 范例图层结构
【背景和标题】图层是用绘图工具和文本工具创建的范例的背景图形和标题文字,起到美化实例的效果。
【动态文本】图层创建了5个动态文本对象,你可以打开【属性】面板观察它们的【变量】名称,它们的【变量】名称与外部文本文件中的5个变量的名字是一致的。这样才可以接收并显示这些变量。
【Action】图层定义加载外部文本文件的动作脚本,选择第1帧,打开【动作】脚本,动作脚本如下:
loadVariables("question.txt",_root);//将外部文本文件加载到影片根时间轴上
3.程序流程结构控制
所谓流程控制,无非就是我们想控制动画程序的执行顺序而已。众所周知,Flash中动画依靠的是时间轴,在没有脚本的情况下,动画会依照时间轴从第一帧不停的播放到最后一帧,然后重复播放或者停止。为了能更好地控制动画,就必须使用脚本语句。而要想使动画具有逻辑判断的功能,就要使用流程控制语句了。
下面我们来讨论控制程序流程的选择结构和循环结构。
(1)选择结构
一般情况下,Flash执行动作脚本从第一条语句开始,然后按顺序执行,直至达到最后的语句。这种按照语句排列方式逐句执行的方式,称为顺序结构。顺序结构是程序中使用最多的程序结构,但用顺序结构只能编写一些简单的动作脚本,解决一些简单的问题。
在实际应用中,我们往往有一些需要根据条件来判断结果的问题,条件成立是一种结果,条件不成立又是一种结果。像这样复杂问题的解决就必须用程序的控制结构,控制结构在程序设计中占有相当重要的地位,通过控制结构可以控制动作脚本的流向,完成不同的任务。
选择结构在程序中以条件判断来表现,根据条件判断结果执行不同的动作。If语句和else语句联用最常用的形式为:
if(条件){
代码块A;
}
else{
代码块B
}
当if语句的条件成立时,执行代码块A的内容,当条件不成立时,执行代码块B的内容。如图6-4-1是程序执行的流程图。
图6-4-1 选择结构流程图
这里需要说明的是,if语句中的条件是由关系表达式或者逻辑表达式实现的。关系表达式和逻辑表达式的值都是布尔(逻辑)值,因此判断if语句中的条件是否成立,实际上就是判断关系表达式或者逻辑表达式的值是真(true)还是假(false)。如果条件表达式的值为true,执行代码块A的内容,如果条件表达式的值为false,则执行代码块B的内容。