作者的blog: www.kingda.org
ActionScript 3.0系列教程(1):與Flash9先來一次親密接觸!
ActionScript 3.0系列教程(2):AS3.0的類及綁定
這次我們開始介紹AS3.0中的類如何和庫中元件綁定,和特殊的Document Class設(shè)計(jì)。
總共4步:
1.建一個(gè)標(biāo)準(zhǔn)的AS3.0類 (暫命名為KingdaMC,多么偉大的名字啊,簡稱“有名”) 2.新建一個(gè)元件,并設(shè)置它的Linkage和上面的類綁定。 3.在時(shí)間軸上寫代碼,用AS3.0代碼創(chuàng)建n份“有名”。 4.刪掉時(shí)間軸上代碼,使用Flash 9新特色Document Class在舞臺(tái)上創(chuàng)造n份“有名”。just 體驗(yàn)一把。
(寫起來才知道要講的內(nèi)容多啊,暈,打了兩個(gè)小時(shí),累了,本節(jié)專門只講講AS3.0的類吧,其余的慢慢再講) 在創(chuàng)建AS3.0之前,請?jiān)试S我先對AS3.0類的語法和繼承設(shè)計(jì)表示敬意。與標(biāo)準(zhǔn)的完全兼容,更好更嚴(yán)格的封裝特性,特別是命名空間(name space)的引入。從今天起從AS3.0起, 在OOP層面上,AS3.0已經(jīng)和Java,C#平起平坐了,甚至在某些方面(比如name space)比java更有意思。
讓俺對AS2.0老鳥說幾句憋在心里的激動(dòng)之語: 如果說AS2.0只是外表接近OOP標(biāo)準(zhǔn)語言,內(nèi)在還是亂糟糟的AS1.0腳本語言,那么AS3.0不論是從OOP設(shè)計(jì)級別,還是從編譯器級別(如,對弱引用—— week reference—— 的支持)來評估的都是標(biāo)準(zhǔn)、正宗、強(qiáng)大的語言。
從AS3.0起,我們ActionScript 開發(fā)者可以挺起胸口,俺們是真正的行業(yè)標(biāo)準(zhǔn)級程序員。
在我繼續(xù)教程之前,我要唱首歌給大家聽: AS3的英明,絕對不是一句兩句能說清!~~~~~~
打完,收工。
1.建立AS3.0類文件
類文件是干嘛用的?比如說,我們想讓一個(gè)對象(Object)有很多功能,比如說這個(gè)對象是MovieClip型的,支持拖拽,支持雙擊等等。那么先在一個(gè)類文件里寫清楚這些要求和實(shí)現(xiàn)方法,然后就可以用這個(gè)類創(chuàng)建許多實(shí)例,這些實(shí)例就全具有了這些功能。寫一次,就能用很多次,多好。最重要的是它還可以通過繼承來重用很多代碼,為將來節(jié)省更多的時(shí)間。
廢話少說,Ctrl+N打開“新建”窗口,選擇建立“ActionScript file”,Ctrl+S,暫存為"KingdaMC.as"文件。(即“有名”的類文件)。
輸入如下代碼:
//代碼如下
//package 見講解1 package { import flash.display.MovieClip; //講解2 import flash.events.MouseEvent;
//講解3 public class KingdaMC extends MovieClip { public function KingdaMC() { trace("Kingda created: " + this.name); this.buttonMode = true; this.addEventListener(MouseEvent.CLICK, clickHandler); this.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownListener); this.addEventListener(MouseEvent.MOUSE_UP, mouseUpListener); } private function clickHandler(event:MouseEvent):void { trace("You clicked the ball"); } function mouseDownListener(event:MouseEvent):void { this.startDrag(); } function mouseUpListener(event:MouseEvent):void { this.stopDrag(); } } }
講解1: AS2.0中我們使用的是全飾名稱來聲明類,通俗說,包括了類的路徑在類名前。AS3.0則把路徑提取出放在package這個(gè)關(guān)鍵字后面。本文例子中的類文件和Fla文件在同一個(gè)目錄下,因此 package后面沒有什么東西。如果類文件在 org目錄下的kingda目錄里,那么就要寫成 :
// ActionScript 2.0 class org.kingda.KingdaMC { }
// ActionScript 3.0 package org.kingda { public class KingdaMC {} }
你在package中可以定義好幾個(gè)類,不用再寫全飾名稱了。但我不推薦這樣做。一個(gè)文件一個(gè)類比較好管理。
出處:藍(lán)色理想
責(zé)任編輯:moby
上一頁 下一頁 AS3.0的類及綁定 [2]
◎進(jìn)入論壇Flash專欄版塊參加討論
|