<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 8  文章 - 55  trackbacks - 0
    <2025年5月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿(6)

    隨筆分類

    隨筆檔案

    文章分類

    文章檔案

    朋友的Blog

    最新評論

    閱讀排行榜

    評論排行榜

    【黑羽】AS 3.0教程(2):AS3.0的類及綁定

    hi,鳥籠山的朋友們,這次我們開始介紹AS3.0中的類如何和庫中元件綁定,和特殊的Document Class設計。
    總共4步:
    1.建一個標準的AS3.0類 (暫命名為KingdaMC,多么偉大的名字啊,簡稱“有名”)
    2.新建一個元件,并設置它的Linkage和上面的類綁定。
    3.在時間軸上寫代碼,用AS3.0代碼創建n份“有名”。
    4.刪掉時間軸上代碼,使用Flash 9新特色Document Class在舞臺上創造n份“有名”。just 體驗一把。

    (寫起來才知道要講的內容多啊,暈,打了兩個小時,累了,本節專門只講講AS3.0的類吧,其余的慢慢再講)
    在創建AS3.0之前,請允許我先對AS3.0類的語法和繼承設計表示敬意。與標準的完全兼容,更好更嚴格的封裝特性,特別是命名空間(name space)的引入。從今天起從AS3.0起, 在OOP層面上,AS3.0已經和Java,C#平起平坐了,甚至在某些方面(比如name space)比java更有意思。

    讓俺對AS2.0老鳥說幾句憋在心里的激動之語:tongue.gif
    如果說AS2.0只是外表接近OOP標準語言,內在還是亂糟糟的AS1.0腳本語言,那么AS3.0不論是從OOP設計級別,還是從編譯器級別(如,對弱引用—— week reference—— 的支持)來評估的都是標準、正宗、強大的語言。

    從AS3.0起,我們ActionScript 開發者可以挺起胸口,俺們是真正的行業標準級程序員。

    在我繼續教程之前,我要唱首歌給大家聽:
    AS3的英明,絕對不是一句兩句能說清!~~~~~~biggrin.gif

    打完,收工。

    1.建立AS3.0類文件,
    類文件是干嘛用的?比如說,我們想讓一個對象(Object)有很多功能,比如說這個對象是MovieClip型的,支持拖拽,支持雙擊等等。那么先在一個類文件里寫清楚這些要求和實現方法,然后就可以用這個類創建許多實例,這些實例就全具有了這些功能。寫一次,就能用很多次,多好。最重要的是它還可以通過繼承來重用很多代碼,為將來節省更多的時間。

    廢話少說,Ctrl+N打開“新建”窗口,選擇建立“ActionScript file”,Ctrl+S,暫存為"KingdaMC.as"文件。(即“有名”的類文件)。

    輸入如下代碼:

    								
    //【黑羽】ActionScript 3.0系列教程(2)
    // http://www.kingda.org
    //代碼如下

    //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這個關鍵字后面。本文例子中的類文件和Fla文件在同一個目錄下,因此 package后面沒有什么東西。如果類文件在 org目錄下的kingda目錄里,那么就要寫成
    // ActionScript 2.0
    class org.kingda.KingdaMC {  
    }
    
    

    // ActionScript 3.0
    package org.kingda {
    public class KingdaMC {}
    }


    你在package中可以定義好幾個類,不用再寫全飾名稱了。但我不推薦這樣做。一個文件一個類比較好管理。

    講解2:
    MovieClip類再也不像AS2.0那樣是默認的全局類了。你要使用MovieClip類一定要寫這一句導入。

    講解3:
    類在AS3.0中也有public 和 internal的區分了。
    public 表示這個類可以在任何地方導入使用。
    internal表示這個類只能在同一個package里面使用。
    不寫,就默認為internal這個新的關鍵字。
    還有一個屬性是final,表示這個類不能被繼承了,繼承樹到此為止。
    說白了,這三個屬性都是用來讓我們更加規范的管理類之間的關系,以便將來修改時心里有譜,大大的方便了修改。

    同時,對架構的設計能力要求更高,新手們和小項目還是多使用public吧。越到后來你會越喜歡internal的。我只要看到internal和private這兩個關鍵字,心中就無比的穩定和舒服。想來不少programmer和我都會有同感吧。


    2.新建一個元件,并設置它的Linkage和上面的類綁定。
    和教程第一章一樣,畫一個方塊,按F8轉成MovieClip,再在庫中右鍵點擊它,選擇"linkage"

    2.gif
    點擊看大圖。

    在Class里面寫上KingdaMC。注意,id輸入框已經被廢止了。因為在AS3.0中,再也沒有MovieClip.attachMovie(), MovieClip.createEmptyMovieClip(), 以及 MovieClip.createTextField()的存在了。
    所有舞臺的可見對象都由new來創建。
    比如說本例中,symbol1綁定了KingdaMC,那么如果我要在舞臺上創建一個KingdaMC,只要寫


    var b1:Kingda = new KingdaMC();
    addChild(b1);

    即可。

    還記得以前那些亂七八糟的創建影片和組件的語法嗎?什么createClassObject(),DepthManager的createChildAtDepth(),createClassChildAtDepth(),等等等等。我的一個java同事剛剛學習AS時,被上面哪些亂亂的創建函數弄得一頭霧水。統統沒有了。只有一統天下的new ClassName(),多標準哪,多舒服啊,多好學啊。
    所以說,沒學AS2.0直接學AS3.0絕對是新手的福氣。

    第二句,addChild這個很重要。
    光有第一句new可不行。那只是告訴Flash我建了一個名字叫b1的KingdaMC要顯示,但還沒告訴Flash什么時候顯示呢。
    你什么時候打addChild(b1),那Flash才會把它顯示在舞臺上。怎么樣,多簡單。
    其實這里省略了一個this。如果你有一個MovieClip名叫BigKingda,希望在這個BigKingda里面加上一個KingdaMC實例,那么就要寫


    BigKingda.addChild(b1);

    非常簡單。

    Ctrl+Enter測試,發現創建的KingdaMC,支持拖拽。
    大家試著用代碼多創建幾個KingdaMC,比如用for循環來建個10個8個的來玩玩。

    好了,累了,要歇歇了,下次講Document Class。

    posted on 2006-07-02 00:21 blog搬家了--[www.ialway.com/blog] 閱讀(453) 評論(0)  編輯  收藏 所屬分類: AS2.0
    主站蜘蛛池模板: 亚洲国产精品人人做人人爱| 免费无码又爽又刺激高潮的视频| 亚洲无码日韩精品第一页| 美女羞羞免费视频网站| 五月婷婷亚洲综合| 十八禁的黄污污免费网站| 亚洲中文无韩国r级电影| kk4kk免费视频毛片| 亚洲人成亚洲人成在线观看| aaa毛片免费观看| 久久久久亚洲av无码专区蜜芽| 午夜免费啪视频在线观看 | 性色av极品无码专区亚洲 | 免费看搞黄视频网站| 亚洲成a人片在线观看中文动漫 | 亚洲av无码有乱码在线观看| 国产精品无码免费视频二三区| 国内成人精品亚洲日本语音| 亚洲日本韩国在线| 成全高清在线观看免费| 亚洲综合男人的天堂色婷婷| 性盈盈影院免费视频观看在线一区| 色噜噜的亚洲男人的天堂| 久久久久国产亚洲AV麻豆| 日本免费电影一区二区| 亚洲一区二区三区免费观看| 国产一级一片免费播放| 国产综合免费精品久久久| 亚洲精品第一国产综合精品| 免费无码又爽又刺激毛片| 久久嫩草影院免费看夜色| 亚洲精品美女视频| 一区国严二区亚洲三区| 男人进去女人爽免费视频国产| 亚洲香蕉久久一区二区| 亚洲A∨午夜成人片精品网站| 免费萌白酱国产一区二区三区| wwwxxx亚洲| 亚洲综合另类小说色区| 曰批全过程免费视频在线观看 | 亚洲视频在线免费观看|