Flash AS 3.0菜鳥學飛教程:類的編寫之不使用庫元件

來源:互聯網
上載者:User

AS3.0 類的編寫(不使用庫元件)

在上一講中我們使用的是已建立好的影片剪輯,並在庫中做類的連結,這對有複雜圖形的創作是比較好的選擇,如果你能熟練的應用繪圖API繪製出你想要的任意圖形,就可以不使用庫元件,直接在類中編寫。下面我們用這種方式編寫類代碼:

建立一個DocumentClass類(建立100個隨機擺放的圓)

1.代碼:
2.

3.package {
4.
5.import flash.display.MovieClip;
6.public class DocumentClass extends MovieClip {
7.// 屬性
8.private var _circle:Drag_circle;
9.private const maxBalls:int = 100;
10.// 建構函式
11.public function DocumentClass() {
12.
13.var i:int;
14.// 迴圈建立小球
15.for(i = 0; i<= maxBalls; i++) {
16.// 建立可拖動小球的執行個體
17._circle = new Drag_circle();
18.// 設定小球執行個體的一些屬性
19._circle.scaleY = _circle.scaleX = Math.random();
20.// 情境中的x,y位置
21._circle.x = Math.round(Math.random() *(stage.stageWidth - _circle.width));
22._circle.y = Math.round(Math.random() *(stage.stageHeight - _circle.height));
23.// 在情境上顯示
24.addChild(_circle);
25.}
26.}
27.}
28.}

Drag_circle類 (繪製一個紅色的圓,有拖拽功能)

1.代碼:
2.

3.package {
4.
5.import flash.display.Sprite;
6.import flash.display.Shape;
7.import flash.events.MouseEvent;
8.

9.public class Drag_circle extends Sprite {
10.
11.private var _circle:Sprite;
12.
13.public function Drag_circle() {
14.
15._circle = new Sprite();
16._circle.graphics.beginFill(0xff0000);
17._circle.graphics.drawCircle(0, 0, 10);
18._circle.graphics.endFill();
19._circle.buttonMode = true;
20.addChild(_circle);
21.
22.
23._circle.addEventListener(MouseEvent.CLICK,onClick);
24._circle.addEventListener(MouseEvent.MOUSE_DOWN,onDown);
25._circle.addEventListener(MouseEvent.MOUSE_UP,onUp);
26.
27.}
28.
29.
30.private function onClick(event:MouseEvent):void {
31.trace("circle clicked");
32.}
33.

34.private function onDown(event:MouseEvent):void {
35._circle.startDrag();
36.}
37.

38.private function onUp(event:MouseEvent):void {
39._circle.stopDrag();
40.}
41.}
42.}

建立一個fla檔案,儲存在Document.as和Drag_class.as類同一目錄中。注意:與上回講的元件類不同在於,不再需要讓情境中有任何內容,因為我們已在主類DocumentClass.as中動態添加和顯示了circle_mc。在屬性面板中的文檔類輸入框中輸入類名 DocumentClass,就可以測試了。(你可以嘗試著給小球加入隨機顏色或漸層顏色)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.