[研究] AS3的display object

看板Flash作者 (CJ Cat)時間18年前 (2007/10/08 23:10), 編輯推噓2(200)
留言2則, 2人參與, 最新討論串1/2 (看更多)
難怪AS3會比AS2效能快上十倍以上 因為在display object這個部份就已經非常精細地分類了 像是以前做靜態物件時 如果用MovieClip是一種浪費 因為根本不會用到play(), stop(), gotoAndPlay(), gotoAndStop(), ...等method 而且_currentFrame, _totalFrame這些property根本沒意義 這在消耗CPU和記憶體的資源有非常大的影響 另外AS3已經移除createEmptyMovieClip(), createTextField()這兩個method 要創造一個新的display object,就用一般的var和new statement 然後修改完畢所有的property(諸如x, y, scaleX, scaleY, rotation, ...etc) 再指定要裝這個display object的container(容器) 使用container的addChild() method來增加這個container的child 如此該display object才會真正顯示在螢幕上 此機制的用意就是要在 display object還是數值資料的時候就先搞定一些設定 等到準備完畢才顯示到螢幕上,大幅增加AVM2的執行效能 <ex>var circle:Shape = new Shape(); circle.graphics.lineStyle(0, 0x000000); circle.graphics.beginFill(0x990000); circle.graphics.drawCircle(0, 0, 100); circle.graphics.endFill(); stage.addChild(circle); //這個時候才真正顯示到螢幕上 AS3的display object分類大致如下 (我只列出常用到的display object) DisplayObjectShape │ └InteractiveObjectTextField │ └DisplayObjectContainerLoader │ ├SpriteMovieClip │ └Stage ※藍字為常用到的display object,白字為類別名稱 以下是一些display object的簡單功能介紹 Shape 基本上只有繪圖的機能(透過使用它的graphics property) <ex>var myShape:Shape = new Shape(); myShape.graphics.lineStyle(3, 0x000000); myShape.graphics.drawCircle(0, 0, 100); TextField 能夠處理文字欄位,跟AS2差別不大 可以用TextFormat class來修改文字外觀 <ex>var myTextField:TextField = new TextField(); myTextfield.text = "testing..."; var myTextFormat:TextFormat = new Textformat(); myTextFormat.size = 50; myTextFormat.color = 0x990000; myTextField.setTextformat(myTextFormat); Loader 可以拿來載入外部媒體,諸如圖檔& .swf檔案 <ex>var myLoader:Loader = new Loader(); var url:String = "potatochips.jpg"; var request:URLRequest = new URLRequest(url); myLoader.load(request); Sprite 相當於沒有時間軸的MovieClip,可以拿來裝其他display object 本身也有graphics property,所以有繪圖機能 <ex>var mySprite:Sprite = new Sprite(); mySprite.addChild(circle_shape);//裝其他的shape MovieClip 這個就不用我再多做解釋了吧...XD Stage 基本上就是_root的性質,無法直接access到它 反倒是所有display object的stage property指的都是它 <ex>myMovieClip_mc.stage.addEventListener(......); 以上,等到有更多的研究成果再po上來吧 :p -- CJ Cat = Croa'J Cat = Cockroach Cat = 西街凱特 = 蜚蠊貓 = 蟑螂貓 Gallery http://cjcat2266.deviantart.com ptt2 Board CJWorkshop - 阿多比閃光(Adobe Flash)研討區 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.228.89.24

10/09 00:24, , 1F
還有要注意stage和Stage......上次用Flex被搞得團團轉...
10/09 00:24, 1F

07/15 14:43, , 2F
推!
07/15 14:43, 2F
文章代碼(AID): #172aXv7e (Flash)
討論串 (同標題文章)
文章代碼(AID): #172aXv7e (Flash)