万世开头难,先来一个Hello World!吧,Adobe出了二款支持Action Script3语言的经典开发工具,即:Flash CS 与Flash Builder(以前称为Flex Builder),这二者的关系就好Silverlight中的Blend与Visual Studio
先来看看Flash中如何玩:
1.启动Flash CS 4,新建一个"Flash 文件(Action Script3.0)"
2.保存为HelloWorld.fla
3.再新建一个ActionScript文件,保存为Person.as(注意要与HelloWorld.fla保存在同一个目录下,否则fla就调用不到as文件了)
4.Person.cs中敲入以下代码:
package { public class Person { private var _sName:String;//姓名 private var _sSayContent:String;//说的内容 //构造函数 public function Person(obj:Object):void { this._sName=obj.name; this._sSayContent=obj.say; } //类的公共方法 public function SayHello():String { var _s:String="["+this._sName+"]说:"+this._sSayContent; trace(_s); return _s; } } }
注:ActionScript与JavaScript都是从ECMAScript标准发展而来的语言,所以语法比较相似,就不多解释了.
5.切换到开发人员工作区
偶是程序员,不是动画设计师,so,换个更习惯的环境,操作如下:
Flash Cs4-->"窗口"菜单-->"工作区"-->"开发人员"
在这个工作区下,可以很方便的添加各类基本组件(即.net中的控件)到场景中
6.拖一个Label到场景中,并设置id为lbl1
7.添加AS代码
"窗口"-->"时间轴"
先把时间轴调出来,然后在第一帧在右击,选择"运作",敲入以下代码:
var p:Person = new Person({name:"菩提树下的杨过",say:"Hello Flash"}); lbl1.text = p.SayHello(); stop();
这里我们初始了一个json对象做为参数,实例化了一个Person对象,然后调用它的SayHello方法,并把返回值赋值为Label控件,最后的stop()让动画不要循环播放
Ctri + Enter 运行结果如下:
源文件下载:
再来看Flash Builder 怎么玩
1.启用Flash Builder Beta2(好象目前这是最高版本了),新建一个"Flex项目"
2.拖一个Label控件到设计视图中,同时设置Id为lbl1
3.新建一个ActionScript文件,并保存为Person.cs,把刚才在Flash中写过的Person.cs代码复制到里面
其实也就是重用在Flash中写过的代码
4.切换到源代码视图,参考下图添加代码
ok了,运行
小结:做为程序员来讲,肯定会更喜欢Flex的编程方式, 这个与Silverlight/VS的开发比较相似,但是有一个细节要注意,同样的功能用Flex开发生成的swf文件要大出N倍,以本文为例:Flash方式生成的swf文件只有15k,而Flash Builder beta2生成的swf文件居然有100K !(看来Adobe还要继续努力啊)