1.6.2 编写实例
具体操作步骤如下:
(1)执行“File”→“New”→“ActionScript Class”菜单命令,新建一个ActionScript类,如图1-24所示。
图1-24 新建ActionScript类
(2)设置包名为“com.flex.demo”,名称为“Circle”,如图1-25所示,完成后单击【Finish】按钮。
图1-25 设置ActionScript包名和类名
(3)在Circle.as文件的输入窗口中编写Circle类文件,内容如下:
package com.flex.demo { public class Circle { //定义常量派 private const PAI:Number = 3.14; //定义属性:半径 private var radius:Number ; //构造方法 public function Circle(radius:Number) { this.radius = radius ; } //获得圆的面积方法 public function area():Number { return this.PAI*this.radius*this.radius; } } }
(4)完成后单击工具栏的保存按钮 保存文件,关于ActionScript语法规则,将在第2章进行详细介绍,这里不做过多讲解。
(5)双击“Flex Navigator”窗口下的“CalculateCircleArea.mxml”文件,打开该主程序运行文件,如图1-26所示。
图1-26 主程序文件内容
(6)单击“CalculateCircleArea.mxml”文件窗口中的【Design】按钮,进入该文件的设计模式,主界面左下角会出现“Components”窗口,如图1-27所示,拖曳一个“TextInput”标签到Design区域。
图1-27 添加TextInput标签
(7)选择该标签,在“Flex Properties”属性窗口中,设置TextInput标签的ID属性值为“radius”,如图1-28所示。
图1-28 设置TextInput标签的id属性
(8)同理,添加TextInput标签,ID值为“area”用来显示面积值,设置其“Editable”属性值为“false”,表示不能编辑,由程序计算得出。添加一个Button标签,“Label”值设置为“计算圆面积”,该按钮用于调用实现方法,并将计算结果添入到“area”栏中。再添加两个Label标签,作为半径和面积的中文说明。
最终效果如图1-29所示。
图1-29 添加Label标签的主程序界面
设计完成后单击【Source】按钮,查看CalculateCircleArea.mxml文件源码,如下所示:
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" fontSize="12"> <mx:Label x="37" y="59" text="请输入半径值:" width="97" height="18"/> <mx:TextInput x="142" y="57" id="radius"/> <mx:Label x="37" y="110" text="圆的面积是:" width="86"/> <mx:TextInput x="142" y="108" enabled="true" id="area" editable="false"/> <mx:Button x="310" y="59" label="计算圆的面积" /> </mx:Application>
接下来,需要将之前建立的Circle.as类加到应用中,计算面积填入TextInput文本框中,并在控制台输出。在<mx:Application>标签中添加如下代码:
<mx:Script> <![CDATA[ import mx.controls.Alert; import com.flex.demo.Circle; //定义CalArea计算面积填入TextInput文本框并在控制台输出 internal function CalArea():void { var r:Number = (Number)(radius.text); //将输入的半径转化为Number类型 if(r.toString() == "NaN")//如果输入的不是数字类型则给出错误提示信息 { Alert.show("请输入数字!","错误提示"); } else { //如果输入正确则计算圆的面积返回显示 var c:Circle = new Circle(r); area.text = c.area().toString() ; trace(area.text); //在控制台输出面积值 } } ]]> </mx:Script>
<mx:Script>标签表示其中需要编写as代码内容,犹如在JSP文件中编写Java代码时需要使用<%%>一样。“<![CDATA”和“]]>”语法是为了告诉XML包含在其中的任何东西都不需要做XML解析。在Script标签中添加CDATA块并不是必需的,但是如果不使用CDATA块,在<mx:Script>标签中使用像“<”的符号,XML解析器会认为你正在写一个新的标签。
在以上程序中,首先,需要使用import语句引入Circle类;之后,创建Circle类实例,将半径值作为Circle类构造方法参数传入到Circle对象中,然后将计算得出的面积值填入“area”栏中显示,同时在控制台打印输出面积值。trace语句用来输出信息到控制台,前提是使用的Flash Player必须是Debug版本。最新的Flash Player Debug版本可以到Adobe官方网站下载:http://www.adobe.com/support/flashplayer/downloads.html。
最后,需要在Button的click事件中调用CalArea方法,如下所示:
<mx:Button x="310" y="59" label="计算圆的面积" click="CalArea()" />