Currently Browsing

Posts Tagged ‘ as3 ’

as3学习入门及首个简单案例

看了几天的书,不曾练手,不动手就容易荒废,所以就有了这第一个as3的例子。

实现功能:点击一次按钮,数字累加1。主要是学习as3新的界面与代码分离模式、基本程序结构、label和button控件的使用,以及时间监听的实现。(小小一个例子,还挺多基础知识的),如图所示

第一步,启动flash cs4.

第二步,建立一个新的fla文件(actionscript3.0)

第三步,将文件保存名为“myLogin.fla”

第四步,在这个项目文件夹中新建一个目录“as3”,新建一个actionscript文件“myLogin.as”,放到目录as3下

第五步,在myLogin.fla的属性中指定文档类,这里为“as3.myLogin”(解释一下,as3表示外部引用的.as文件的目录名,myLogin表示这个as文件里的类名,见后面的代码中class名)

第六步,编辑myLogin.as文件,输入如下代码然后ctrl+enter运行,测试、除错,ok~~
注意,这里我们定义了两个组件(label1和button1),而as3的机制是,必须确保这两个组件在“库”中存在(不一定要在舞台上),所以,我们要先从组件工具箱中将一个label和一个button组件拖放到myLogin.fla的库中去,此问题困扰我许久,老是报错,后来在天地会上终于找到了资料,真是奇怪的as3….
如图:

代码如下:
01 package as3
02 {
03     import flash.display.Sprite;
04     import fl.controls.Label;
05     import fl.controls.Button;
06     import flash.events.MouseEvent;
07     public class myLogin extends Sprite{
08         private var label1:Label;
09         private var button1:Button;
10         public function myLogin(){
11             label1 = new Label();
12             label1.move(5,10);
13             label1.text = “0″;
14             button1 = new Button();
15             button1.label = “提交”;
16             button1.move(5,30);
17             button1.addEventListener(MouseEvent.CLICK,buttonclick);
18             addChild(label1);
19             addChild(button1);
20         }
21        
22         public function buttonclick(e:MouseEvent){
23             var n:int = int(label1.text);
24             label1.text = String(n+1);
25         }
26     }
27 }

代码解释:

1.as3和as2有很大的不同,as3很多地方都重写了,而且尽量避免了as2里直接在时间轴上写代码造成难以维护的现象,所以就出现了我们在.fla文件里引用的类”as3.myLogin”

2.第一行 package as3 表示一个包,有利于更好地管理代码?很像java了吧? 如果你的.as文件和.fla文件在同一级目录,应该可以省略这个“as3”,不过为了结构清晰,还是单独把.as文件放到一个目录吧(目录名不要用actionscript的关键字,如“as”)

3.第3行到第6行 import 导入一些必需的类,如button支持、lablel支持、基础显示类sprite。

4.第7行 定义类 myLogin,继承自Sprite类。

5.第8、9行,定义一个label和一个button组件

6.10行开始是该类的构造函数,在里面对label和button初始化,并对一些属性进行了赋值,move方法将这两个组件放到合适的位置。

7,17行中,将一个鼠标点击事件绑定到button1上,处理函数是buttonclick

8.18、19行,addChild()方法将这两个组件添加到舞台上去。

10.22行开始即那个按钮的鼠标单击事件处理函数,大概意思是,点击的时候,得到label1的text值,将其转换为整数并赋给变量n,然后将n+1后再转换为字符串,更新label的text为+1后的数字。