1.4.4代码编写
现在开始进入最麻烦的步骤——代码编写,我们将会接触到很多新的东西。
1、文本文件数据加载
在最开始的时候,我们曾建立一个文本文件,将其命名为“subtrahend.txt”,存在.fla文件所在的目录下,这个文件中包含有程序需要读取的参数,现在我们就要编写代码将这些数据读取出来。
选中“脚本”层中的第一帧,然后打开行为面板,输入这样的代码:
var externalData:LoadVars = new LoadVars();
externalData.onLoad = function(){
subtrahend_txt.text = externalData.subtrahend;
}
externalData.load("subtrahend.txt");
var externalData:LoadVars = new LoadVars();这个语句的作用是建立一个LoadVars对象,将其命名为externalData。
而紧接下来的三行语句的作用是处理externalData对象的onLoad事件的代码,也就是说,当externalData对象加载的时候(onLoad),将读取externalData对象的subtrahend属性并赋值给界面上的subtranhend_txt,从而就完成了将数据从文本文件中读取出来并显示在界面上的过程。
你也许会问,externalData对象的subtrahend属性是从哪里“冒出来”的,回顾一下我们在实例开始时建立文本文件时在其中输入的内容是&subtrahend=100,凡是以“&”的行,LoadVars对象都会将&后面的单词识别为自己的一个属性并将紧随其后的等号右边的参数作为这个属性的值。
2、用户输入数据的处理
这个减法运算的,两个运算数一个是从文本文件中读取出来的,另外一个是根据用户的输入获得的,前面设置文本对象属性的时候我们已经将其中一个设置为“输入文本”,用户可以在其中输入数值。现在就是要处理当用户完成数值输入然后单击“Submit”按钮所要执行的操作。
选择“脚本”层中的那个提交按钮,为其添加这样的代码:
on (press) {
var minuend:Number = Number(minuend_txt.text);
var subtrahend:Number = Number(subtrahend_txt.text);
finalResult=minuend-subtrahend
}
这段代码处理用户在该命名按钮上单击鼠标后需要执行的操作,这里的两个语句的作用是将,界面上的两个文本对象显示的内容转换成数值并分别用两个变量minuend和subtrahend保存,然后运算两者的差并保存到变量finalResult中。
3、根据运算结果提供反馈
首先拖放一个影片剪辑Movie_Clip的实例到场景的“界面”层当中并将这个影片剪辑实例命名为Movie_Clip_Instance_mc,要想在代码中引用影片剪辑的实例必须为其指定名称。
下面根据finalResult的值来确定给用户什么样的反馈。在On(Press)事件处理中追加以下的代码。
on (press) {
var minuend:Number = Number(minuend_txt.text);
var subtrahend:Number = Number(subtrahend_txt.text);
finalResult=minuend-subtrahend;
result_txt.text=finalResult;
if (finalResult>0)
Movie_Clip_Instance_mc.gotoAndPlay(3)
else
Movie_Clip_Instance_mc.gotoAndPlay(2);
}
追加的这几行代码使用了一个简单的判断结构,即if...else...,如果if括号中的条件满足则执行前一条语句,否则执行后一条语句。这里我们调用了影片剪辑实例Movie_Clip_Instance_mc的gotoAndPlay方法,这个方法可以让影片剪辑在自身内部调转播放,由于我们在影片剪辑中的不同帧上安放了不同的反馈信息,因此通过这个语句就可以非常快速地完成对用户的反馈,这也是交互式Flash应用程序开发中常用的小技巧。
1.5总结
麻雀虽小,五脏俱全,这个程序看上实在有些简陋,但是通过这个傻傻的例子我们还是能够学到很多Flash MX 2004 ActionScript的知识,这里再作一个回顾,对照下面的列表检查一下自己掌握了多少:
Flash程序输入数据有两种比较常用方法:一是通过用户输入,在这个例子中我们通过一个“输入文本”来实现,还有一种是通过文本文件,在这个例子中我们通过建立LoadVars对象并调用其Load方法,然后再起onLoad()事件处理中提取数据。
在On(Press)事件中,可以处理用户单击按钮的操作
使用影片剪辑实例的gotoAndPlay()方法可以播放影片剪辑实例内部指定的帧
函数Number()可以用来提取界面上的文本对象中显示的数字