ActionScript 3.0 顯示物件(DisplayObject)與顯示物件容器(DisplayObjectContainer)

 ActionScript 3.0 針對影片片段及各種顯示物件的概念與 2.0 有截然不同。如果你寫過 ActionScript 2.0 請務必先忘了_root,_level0,_level1...和 getNextHighestDepth()這些東西。
 ActionScript 3.0 的顯示最上層是舞台(Stage),然後是文件類別的實體,往下是則可以顯示的顯示物件或者顯示物件容器,大致如圖一所示。顯示物件容器本身也是一種顯示物件,只不過它可以再包含其他的顯示物件在其中,而成為一個顯示物件列示(display list);而單純的顯示物件就無法再含有其他物件。例如:Shape 是顯示物件,MoiveClip、Sprite 是顯示物件容器。


圖一


 任何顯示物都可以透過 stage 屬性來取得舞台物件。以下的程式範例:簡單說明如何使用顯示物件及顯示物件容器。
package jason.tutorial.actionscript
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.display.Shape;
/**
* @author JASON
*/
public class Document extends MovieClip // 這是文件類別
{
public function Document() //建構元
{
// 建立一個名為 container 的顯示物件容器
// 自建一個 Container Class 且必須先和一個已存在的影片片段結合
var container:Container=new Container();
addChild(container); //容器加到主影片成為子物件
container.x=(container.stage.stageWidth-container.width)/2; //在舞台居中
container.y=(container.stage.stageHeight-container.height)/2;

// 直接畫一個圓的形狀
var circle:Shape=new Shape();
container.addChild(circle); //加成容器的子物件
circle.graphics.clear();
circle.graphics.beginFill(0x551188);
circle.graphics.drawCircle(100,100, 50);
circle.graphics.endFill();

// 用已存在元件庫的影片片段生成 container 的子顯示物件
var star:Star=new Star();
container.addChild(star);
star.x=330;
star.y=120;
}
}
}


然後點下Flash 選單的控制/測試影片,就可看到類似以下的結果。


(圖二)

留言

這個網誌中的熱門文章

GSM Modem 傳送簡訊的幾個 AT 指令

FlashDevelop 3.0.x 開發環境安裝及使用(二)