Re: [討論] 大家覺得AS 3.0好用嗎?
※ 引述《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)
推
01/19 06:38, , 1F
01/19 06:38, 1F
推
01/19 09:39, , 2F
01/19 09:39, 2F
推
01/19 14:22, , 3F
01/19 14:22, 3F
推
01/19 15:31, , 4F
01/19 15:31, 4F
推
01/22 02:25, , 5F
01/22 02:25, 5F
推
02/14 17:54, , 6F
02/14 17:54, 6F
討論串 (同標題文章)
Flash 近期熱門文章
PTT數位生活區 即時熱門文章