中文字幕二区_国产精品免费在线观看_黄色网站观看_人人草人人澡_日本真实娇小xxxx

您的位置: 首頁 > 技術(shù)文檔 > 多媒體制作 > Making Things Move 第二章
AS3自寫類整理筆記:類的分包處理 回到列表 Making Things Move 第一章
 Making Things Move 第二章

作者:alan98 時間: 2008-04-16 文檔類型:翻譯 來自:藍色理想

第 1 頁 ActionScript 3.0 動畫基礎(chǔ) [1]
第 2 頁 ActionScript 3.0 動畫基礎(chǔ) [2]
第 3 頁 ActionScript 3.0 動畫基礎(chǔ) [3]
第 4 頁 ActionScript 3.0 動畫基礎(chǔ) [4]
第 5 頁 ActionScript 3.0 動畫基礎(chǔ) [5]
第 6 頁 ActionScript 3.0 動畫基礎(chǔ) [6]
第 7 頁 ActionScript 3.0 動畫基礎(chǔ) [7]

動畫事件

我們希望能夠使用代碼讓物體動起來,并允許屏幕反復(fù)地刷新。前面看過一個使用 enterFrame 影片事件的示例,F(xiàn)在把這種方法運用到 AS 3 中,只需要增加一個 enterFrame 事件的偵聽器即可:

addEventListener(Event.ENTER_FRAME, onEnterFrame);

別忘了導(dǎo)入 Event 類,并創(chuàng)建一個名為 onEnterFrame 的方法。人們常常迷惑,只有一幀怎么能執(zhí)行 enterFrame(進入幀) 事件呢?事實上,播放頭并非真正地在進入下一幀,它只停留在第一幀上,并不是把播放頭移動到下一幀才形成了 enterFrame 事件,而是用另一種方法:Flash 告訴播放頭何時進行移動,可以把 enterFrame 看成一個定時器,只是有些不精確。
下面我們看看第一個 AS 3 動畫:

package {
 import flash.display.Sprite;
 import flash.events.Event;
 public class FirstAnimation extends Sprite {
  private var ball:Sprite;
  public function FirstAnimation() {
   init();
  }
  private function init():void {
   ball = new Sprite();
   addChild(ball);
   ball.graphics.beginFill(0xff0000);
   ball.graphics.drawCircle(0, 0, 40);
   ball.graphics.endFill();
   ball.x = 20;
   ball.y = stage.stageHeight / 2;
   ball.addEventListener(Event.ENTER_FRAME, onEnterFrame);
  }
  private function onEnterFrame(event:Event):void {
   ball.x++;
  }
 }
}

init 函數(shù)創(chuàng)建了一個名為 ball 的 Sprite 影片,并為其建立事件偵聽。 onEnterFrame 函數(shù)負責(zé) ball 的運動及屏幕刷新工作。這是學(xué)習(xí)本書內(nèi)容的基礎(chǔ),也是使用 ActionScript 創(chuàng)建動畫的基礎(chǔ),所以務(wù)必要掌握。
 
顯示列表

在 AS 3 之前,人們可以創(chuàng)建多個不同類型的可視化對象,包括影片剪輯,圖形,按鈕,文本框,位圖,組件和基本形狀。這些對象沒有真正的層次結(jié)構(gòu),它們的創(chuàng)建、刪除、操作方法也均不相同。比如,在 IDE 中,可以使用 attachMovie ,duplicateMovieClip 或 createEmptyMovieClip 的方法將影片剪輯放置于舞臺上,文本框可以在開發(fā)環(huán)境中創(chuàng)建也可以用代碼創(chuàng)建。而在使用位圖(bitmap),視頻(video)及組件(component)時,它們就像是來自于別的星球,最終被強硬地放在一起。

對于 AS 3 來說,這些對象都有了統(tǒng)一的歸屬。在舞臺上所有可見的對象都繼承自 DisplayObject 類。換句話講,這些對象都是一個大家庭的成員,并以相同的形式工作,使用同樣的方式進行創(chuàng)建,置入,刪除,操作。無論創(chuàng)建 Sprite 影片,影片剪輯或文本框的方法都非常相近,我們需要使用 new 關(guān)鍵字來完成,創(chuàng)建任意類型的對象。為了證明這一點,請看下面三條示例:

var myTextfield:TextField = new TextField();
var myMovieClip:MovieClip = new MovieClip();
var mySprite:Sprite = new Sprite();

如果我們創(chuàng)建的是一個影片剪輯或 Sprite 影片的話,就可以直接里面進行繪制,如:

mySprite.graphics.beginFill(0xff0000);
mySprite.graphics.drawCircle(0, 0, 40);
mySprite.graphics.endFill();

但只有這些代碼,還不能看到效果,這就引發(fā)了接下來要討論的顯示列表!帮@示列表”是個新名詞,可以理解為一顆由可視對象構(gòu)成的樹。舞臺就是樹根,默認為可見的,在舞臺上,我們可以有很多影片剪輯或可視對象(文本框,圖形等),把它們加入舞臺后,也就成為可見的了。

這些影片中也許還嵌套著很多層的可視對象,這就是我們所謂的顯示列表。 AS 2 與 AS 3 顯示列表最大的不同在于,AS 2 中,當使用 attach 或 createEmptyMovieClip 方法創(chuàng)建影片剪輯時,必須指定它位于樹的哪個位置。這樣一來,影片剪輯要放置在列表的指定位置。當刪除該影片時,同樣也無法改變它在列表中的位置或在列表中移除它。

在 AS 3 中,創(chuàng)建了一些 Sprite 影片后,不會自動被加入顯示列表。在上面的示例中我們發(fā)現(xiàn),創(chuàng)建一個 Sprite 后,并不涉及父級影片(parent)或深度(depth)的問題,這樣就可以在它沒有加入視覺列表之前就對其進行操作了。說到舞臺(Stage),可以把這些顯示對象看作是幕后的演員,雖然看不到,但確實存在,并時刻準備著亮相的一刻,我們使用 addChild 方法把對象加入顯示列表。將文檔類作為樹根,向里面加入孩子時,會自己被設(shè)置為可見的。
現(xiàn)在,在前面的例子中再加入創(chuàng)建 Sprite 對象以及 addChild 方法,如下:

var mySprite:Sprite = new Sprite();
mySprite.graphics.beginFill(0xff0000);
mySprite.graphics.drawCircle(0, 0, 40);
mySprite.graphics.endFill();
addChild(mySprite);

如果大家有興趣試一下這段代碼的話,請把它們寫入前面所給的類框架的 init 函數(shù)中。請注意,繪制出的圓默認位置是0,0點,可以改變其 x 和 y 屬性。還要注意,創(chuàng)建新影片時不再需要像 AS 2 那樣去設(shè)置深度(depth)。雖然深度管理為自動執(zhí)行,但我們還有指定深度或改變深度的方法,這部分等將來用到時再講。
使用 removeChild 方法,從顯示列表中刪除一個對象,并以該對象的名字作為參數(shù)。第一,刪除一個對象,不是去毀滅它,對象依然保持原樣,只是暫時被移除,當再次被加入到顯示列表中,對象仍保持原來的狀態(tài)。換句話講,如果顯示對象里面繪制了圖形,或是已加載了一些外部信息,那么將它重新加入顯示列表后,就不必再去重繪或重載這些信息。第二,把該對象重新加入顯示列表后,還可以為它指定處在顯示列表中的位置,這就是我們所熟知的重定父級。

從一個影片剪輯中刪除一個對象,再把它加載到另一個影片中剪輯中,并保持剛剛被刪除時的狀態(tài),在以前是不可能完成的。事實上,有時并不需要去刪除影片,因為,一個子對象只能有一個父級,把它加入到另一個父級中,就會自動從原來的父級中刪除。請看下面示例:

package {
 import flash.display.Sprite;
 import flash.events.MouseEvent;
 public class Reparenting extends Sprite {
  private var parent1:Sprite;
  private var parent2:Sprite;
  private var ball:Sprite;
  public function Reparenting() {
   init();
  }
  private function init():void {
   parent1 = new Sprite();
   addChild(parent1);
   parent1.graphics.lineStyle(1, 0);
   parent1.graphics.drawRect(-50, -50, 100, 100);
   parent1.x = 60;
   parent1.y = 60;
   parent2 = new Sprite();
   addChild(parent2);
   parent2.graphics.lineStyle(1, 0);
   parent2.graphics.drawRect(-50, -50, 100, 100);
   parent2.x = 170;
   parent2.y = 60;
   ball = new Sprite();
   parent1.addChild(ball);
   ball.graphics.beginFill(0xff0000);
   ball.graphics.drawCircle(0, 0, 40);
   ball.graphics.endFill();
   ball.addEventListener(MouseEvent.CLICK, onBallClick);
  }
  public function onBallClick(event:MouseEvent):void {
   parent2.addChild(ball);
  }
 }
}

該類中有三個 Sprite 對象:parent1, parent2, ball。 parent1, parent2 影片直接加入顯示列表,并在影片中繪制了正方形。 Ball 影片被加入到 parent1,就相當于加入了顯示列表并可見。當小球被點擊時,它將被加入 parent2 影片中。請注意,沒有改變 Ball 的 x,y 坐標的代碼,之所以產(chǎn)生移動是因為 Ball 被加載到了不同位置的 Sprite 影片中。 Sprite 影片被刪除后再被加入顯示列表,Ball 仍會出現(xiàn)。

出處:藍色理想
責(zé)任編輯:bluehearts

上一頁 ActionScript 3.0 動畫基礎(chǔ) [4] 下一頁 ActionScript 3.0 動畫基礎(chǔ) [6]

◎進入論壇RIA設(shè)計與應(yīng)用版塊參加討論

相關(guān)文章 更多相關(guān)鏈接
FLASH小游戲開發(fā) 第三節(jié)
Flash P2P 通信技巧(AS-Java-AS)
FLASH小游戲開發(fā) 第二節(jié)
Making Things Move 第四章
用photoshop制作文字波動動畫
作者文章
Making Things Move 第四章
Making Things Move 第三章
Making Things Move 第一章
貪吃蛇游戲代碼翻譯
關(guān)鍵字搜索 常規(guī)搜索 推薦文檔
熱門搜索:CSS Fireworks 設(shè)計比賽 網(wǎng)頁制作 web標準 用戶體驗 UE photoshop Dreamweaver Studio8 Flash 手繪 CG
站點最新 站點最新列表
周大!熬•自然”設(shè)計大賽開啟
國際體驗設(shè)計大會7月將在京舉行
中國國防科技信息中心標志征集
云計算如何讓安全問題可控
云計算是多數(shù)企業(yè)唯一擁抱互聯(lián)網(wǎng)的機會
阿里行云
云手機年終巨獻,送禮標配299起
阿里巴巴CTO王堅的"云和互聯(lián)網(wǎng)觀"
1499元買真八核 云OS雙蛋大促
首屆COCO桌面手機主題設(shè)計大賽
欄目最新 欄目最新列表
淺談JavaScript編程語言的編碼規(guī)范
如何在illustrator中繪制臺歷
Ps簡單繪制一個可愛的鉛筆圖標
數(shù)據(jù)同步算法研究
用ps作簡單的作品展示頁面
CSS定位機制之一:普通流
25個最佳最閃亮的Eclipse開發(fā)項目
Illustrator中制作針線縫制文字效果
Photoshop制作印刷凹凸字體
VS2010中創(chuàng)建自定義SQL Rule
>> 分頁 首頁 前頁 后頁 尾頁 頁次:5/71個記錄/頁 轉(zhuǎn)到 頁 共7個記錄

藍色理想版權(quán)申明:除部分特別聲明不要轉(zhuǎn)載,或者授權(quán)我站獨家播發(fā)的文章外,大家可以自由轉(zhuǎn)載我站點的原創(chuàng)文章,但原作者和來自我站的鏈接必須保留(非我站原創(chuàng)的,按照原來自一節(jié),自行鏈接)。文章版權(quán)歸我站和作者共有。

轉(zhuǎn)載要求:轉(zhuǎn)載之圖片、文件,鏈接請不要盜鏈到本站,且不準打上各自站點的水印,亦不能抹去我站點水印。

特別注意:本站所提供的攝影照片,插畫,設(shè)計作品,如需使用,請與原作者聯(lián)系,版權(quán)歸原作者所有,文章若有侵犯作者版權(quán),請與我們聯(lián)系,我們將立即刪除修改。

您的評論
用戶名:  口令:
說明:輸入正確的用戶名和密碼才能參與評論。如果您不是本站會員,你可以注冊 為本站會員。
注意:文章中的鏈接、內(nèi)容等需要修改的錯誤,請用報告錯誤,以利文檔及時修改。
不評分 1 2 3 4 5
注意:請不要在評論中含與內(nèi)容無關(guān)的廣告鏈接,違者封ID
請您注意:
·不良評論請用報告管理員,以利管理員及時刪除。
·尊重網(wǎng)上道德,遵守中華人民共和國的各項有關(guān)法律法規(guī)
·承擔(dān)一切因您的行為而直接或間接導(dǎo)致的民事或刑事法律責(zé)任
·本站評論管理人員有權(quán)保留或刪除其管轄評論中的任意內(nèi)容
·您在本站發(fā)表的作品,本站有權(quán)在網(wǎng)站內(nèi)轉(zhuǎn)載或引用
·參與本評論即表明您已經(jīng)閱讀并接受上述條款
推薦文檔 | 打印文檔 | 評論文檔 | 報告錯誤  
專業(yè)書推薦 更多內(nèi)容
網(wǎng)站可用性測試及優(yōu)化指南
《寫給大家看的色彩書1》
《跟我去香港》
眾妙之門—網(wǎng)站UI 設(shè)計之道
《Flex 4.0 RIA開發(fā)寶典》
《贏在設(shè)計》
犀利開發(fā)—jQuery內(nèi)核詳解與實踐
作品集 更多內(nèi)容

雜⑦雜⑧ Gold NORMANA V2