作者cjcat2266 (CJ Cat)
看板Flash
标题Re: [讨论] 大家觉得AS 3.0好用吗?
时间Fri Jan 18 23:05:40 2008
※ 引述《kazenol (随便啦)》之铭言:
: Java我也是学过,不过没有实际撰写的经验
: 我现在主要的问题是,以前AS2时所有的指令、事件都可以直接使用
: 到了3.0以後,基本的事件都必须用event listener,还要import这些物件的class
要明确import一个package才能使用里面的class
乍看之下好像使用Flash内建的class似乎没有什麽意义
但是!对全世界写custom class的人可是意义非凡
如果你要写一个能够画长方形的class叫做Rectangle
第一个遇到的问题就是AS3也有内建一个同样名称的class!!
那这样就不能用Rectangle来命名了吗?
不,因为有package这个机制存在
所以假如你的package叫做tw.idv.kazenol
那麽tw.idv.kazenol.Rectangle 和 flash.geom.Rectangle就不一样
而且可以拥有一样的class name
明确的import正确的package可以容许同名的class共存
或许你没注意到
不过有些AS2的class也是要经过import才能使用的喔
常用的像是 flash.filters
flash.display
flash.geom
另外补充一下
include和import意义不一样
include是把一段code "贴" 过来
import则是 "告诉" compiler我这边所要引用的class所属的package
include一段code而有部分没有用到,会增加不必要的档案大小
import则不会,有用到的部分才会被编进档案里头
: 我们从前就不会去注意button或movie是属於什麽物件或是class
如果有学过其他语言
就知道AS2没有很注重data type是一种特例
到了AS3加强了typing的观念以後
才让AS有了更严谨、更有系统的结构
而且ActionScript Virtual Machine 2(AVM2)有runtime type checking
不只在编译时,在执行时也会检查变数类型
所以以前在AVM1跑AS2的时候莫名奇妙的类型错误bug
在AVM2 debugging的时候就会被回报出来,非常方便
AVM1执行的AS2和AS1其实背後的机制都是跟AS1一样的
AS2虽然有class、interface
但是在编译完之後其实已经转换到跟AS1一样结构的bytecode去了
而且变数的data type资讯并不会一起被编进去
: 现在一开始要写一个简单的onPress,我该怎麽查询,要import什麽?要怎麽listen呢
AS3使用一个完整的Event Listener Model
这个是从Component 2.0就有的语法
只是当时AS2的Event Listener Model仅限於component
而且没有定义event constant
只用字串代表event,常常可能打错字
到了AS3变成了所有的class都使用Listener Model
Listener Model跟AS2所使用的Handler Model
最大的差别就在於Flash Player的执行效率
AS2的一个物件拥有多个handler
各种handler对应不同的事件,并且在该执行的时候各自执行
而AS3的listener则是去 "监听" 一个事件
也就是当滑鼠按下去的时候
只有 "一个" MouseEvent.MOUSE_DOWN会被丢出来
有register(注册)为listener的function "抓" 到了这个事件
就会去执行function内部的事情
而AS2同样的事件
所有active物件的onMouseDown handler function都会被呼叫
只是指到null的handler没有做事情而已
从这边就可以看到listener比handler有效率
至於一个事件所对应的constant (像是Event.ENTER_FRAME)
还有什麽时候会有这个事件被丢出来
看看F1 reference就很足够罗
--
CJ Cat = Croa'J Cat = Cockroach Cat = 西街凯特 = 蜚蠊猫 = 蟑螂猫
Gallery
http://cjcat2266.deviantart.com
ptt2 Board CJWorkshop - 阿多比闪光(Adobe Flash)研讨区
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.166.138.237
※ 编辑: cjcat2266 来自: 218.166.138.237 (01/19 00:38)
1F:推 aquarianboy:推 01/19 06:38
2F:推 etrexetrex:推 01/19 09:39
3F:推 ComicMan:这个赞 01/19 14:22
4F:推 scars:推 01/19 15:31
5F:推 mysteriousGE:推 01/22 02:25
6F:推 HornyDragon:非常好 签名档吓到我了......Furry fan推一个 02/14 17:54