麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 辦公 > Flash > 正文

Flash AS 教程:子類化顯示對象

2020-07-17 13:19:29
字體:
來源:轉載
供稿:網友
子類化顯示對象
前面已經講過生成 Sprite 或 MovieClip 類的子類,對某個類進行子類化是非常有用的。首先,大家可能對 AS 3 取消 attachMovieClip 功能感到十分驚呀,如果這樣的話,我們怎么才能在 Flash CS3 IDE 庫中取出影片剪輯元件放入舞臺呢?答案是,使用一個繼承自 MovieClip 或 Sprite 的類。為了能夠好地解釋這個問題,簡單地介紹一下 IDE:
    創建一個新的 FLA 文件,并在舞臺上繪制一些圖形。 選中圖形按下 F8 鍵轉換為元件。 在轉換為元件窗口中輸入一個名稱,并設置為影片剪輯類型。 選擇為 ActionScript 導出。
在以前的 Flash 版本中,可以自由地給出標識符或輸入一個類名。而在 Flash CS3 中,標識符一欄不可用了,類一欄會自動地填入默認值。這里還多出了基類一欄,默認為 flash.display.MovieClip,這里也可以填入繼承自 MovieClip 或 Sprite 的自定義類。
隨意輸入一個類名,不必擔心沒有這個類,然后點擊確定。這個地方很有趣,Flash 找不到這個類,它就會自動生成一個類,并對其進行編譯。并不是說 Flash 會創建一個 ActionScript 類文件,但它會在 SWF 中,生成一串字節代碼表示一個繼承自 Sprite 或 MovieClip 的類。除了繼承了基類,它什么都不會做,但它已經與庫中的元件連接上了。比如,你的類名為 Ball。在文檔類或時間軸上,可以這么寫:
var ball:Ball = new Ball();
addChild(ball);
這樣就在舞臺上創建了一個庫中的元件,就像 AS 2 的 attachMovie 方法一樣。我們要是能給出自定義的真正的類名及路徑的話,那么就可以讓元件附加很多功能。現在,我們跳出 Flash IDE 回到類的世界,看下一個示例。下面再看一個重定父級的示例,這里有一些重復的部分可以寫入另一個類中。看一下示例,假設已經創建了一個名為 parent1 的 Sprite 實例,要里面繪制正方形:
parent1.graphics.lineStyle(1, 0);
parent1.graphics.drawRect(-50, -50, 100, 100);
下面再創建一個名為 parent2 的 Sprite 實例,同樣也是繪制一個正方形。當然這個例子毫無意義,但它可以告訴我們 Sprite 的子類是多么的有用。首先,我們建立一個名為 ParentBox 的類,并繼承自 Sprite,這樣一來,就擁有了繪制正方形的代碼:
package {
import flash.display.Sprite;
public class ParentBox extends Sprite {
public function ParentBox() {
init();
}
private function init():void {
graphics.lineStyle(1, 0);
graphics.drawRect(-50, -50, 100, 100);
}
}
}
然后,使用這個類創建兩個 ParentBox,這樣做比創建兩個 Sprite 對象要好得多。
package {
import flash.display.Sprite;
import flash.events.MouseEvent;
public class Reparenting2 extends Sprite {
private var parent1:ParentBox;
private var parent2:ParentBox;
private var ball:Sprite;
public function Reparenting2() {
init();
}
private function init():void {
parent1 = new ParentBox();
addChild(parent1);
parent1.x = 60;
parent1.y = 60;
parent2 = new ParentBox();
addChild(parent2);
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);
}
}
}
作為 ParentBox 的實例,它們仍是 Sprite ,因此還可以再增加子影片, init 方法直接進行繪圖。雖然這個示例價值不大,但可以讓你學會這種思想,往后,會在書中看到更多更復雜的示例。你也許想自己動手創建一個球(Ball)類,用于繪制小球,雖然這么做不會減少代碼里,但是當你的類變得十分復雜時,把功能代碼分離到不同的類中,這絕對是個好辦法,它比將所有類寫在一起要好得多,同時還促進了代碼的重用性。那么現在就去創建這個 Ball 類吧,在日后的學習中還要用到呢。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 成人不卡在线观看 | 国产精品麻豆一区二区三区 | 中文字幕综合在线观看 | 亚洲日本韩国精品 | 国产免费小视频在线观看 | 久久精品久久精品国产大片 | 91美女福利视频 | 一级免费黄视频 | 91精品国产刺激国语对白 | 色999中文字幕 | 黄色久 | 亚洲午夜电影 | 深夜福利久久久 | 一级免费黄视频 | 免费久久精品 | 亚洲精品91| 免费黄色大片网站 | 欧美一级高潮 | 欧美一级黄色影院 | 亚洲精品久久久久久久久久久 | 免费的性爱视频 | 欧美一区二区三区免费观看 | 久久国产精品久久久久久电车 | 黄在线观看在线播放720p | 免费看黄色一级片 | 免费黄色一级网站 | 亚洲性爰 | 亚洲精品久久久久久久久久 | 国产黄色免费网站 | 久久久久久久久久久久久九 | 日本高清一级片 | 免费a级黄色片 | 黑人一区二区三区四区五区 | 日本a大片 | 91精品国产综合久久久欧美 | 久章草在线观看 | 国产精品欧美日韩一区二区 | 奶子吧naiziba.cc免费午夜片在线观看 | 九九热九九热 | 国产在线观看91一区二区三区 | xxxeexxx性国产 |