Currently Browsing
Posts Tagged ‘ as3 ’
as3学习入门及首个简单案例
- 17 十月 //
- Posted in web开发 //
- Tags : as3, flash, RIA应用
- No Comment
看了几天的书,不曾练手,不动手就容易荒废,所以就有了这第一个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后的数字。


