addChild(child:DisplayObject):DisplayObject
將 DisplayObject 子實體加入至此 DisplayObjectContainer 實體。
removeChild(child:DisplayObject):DisplayObject
將指定的 child DisplayObject 實體從 DisplayObjectContainer 實體的子清單中移除。
Sprite類別實體aaa使用graphics屬性繪製了三角形,並加入顯示清單而為Sprite類別實體container的子物件。以 Switch_btn 切換呼叫 addChild() 和 removeChid(),將aaa 加入和移除。
991208_DisplayObjectContainer.addChild、removeChild_2.fla
import flash.display.Sprite;
//
var container:Sprite = new Sprite();
addChild(container);
//
var flag:Boolean = true;
var aaa:Sprite = new Sprite();
aaa.graphics.lineStyle(10, 0xFF2255, 1, false, LineScaleMode.VERTICAL, CapsStyle.NONE, JointStyle.MITER, 10);
aaa.graphics.beginFill(0xffaa00);
aaa.graphics.moveTo(50, 50);
aaa.graphics.lineTo(520, 160);
aaa.graphics.lineTo(320, 300);
aaa.graphics.lineTo(50, 50);
aaa.graphics.endFill();
container.addChild(aaa);
//
switch_btn.buttonMode = true;
switch_btn.addEventListener(MouseEvent.CLICK, removeSprite);
function removeSprite(e:MouseEvent):void{
if (flag){
container.removeChild(aaa);
flag = false;
}else{
container.addChild(aaa);
flag = true;
}
//remove_btn.removeEventListener(MouseEvent.CLICK, removeSprite);
}
試著將切換用的按鈕switch_btn當作內嵌資源類別來使用,從舞台上刪除,並從元件庫來做設定,為SwitchBtn類別
switch_btn的label文字也配合切換,以TextField類別實體來做動態處理
991208_DisplayObjectContainer.addChild、removeChild_3.fla
import flash.display.Sprite;
import flash.text.TextField;
import flash.display.MovieClip;
import flash.text.TextFormat;
//建構TextFormat類別實體指定給myTextFormat,設定myTextFormat的屬性值
var myTextFormat:TextFormat = new TextFormat();
with(myTextFormat){
color = 0x000066;
size = 16;
font = "Lucida Fax";
bold = true;
}
//建構TextField類別實體指定給labelTf
var labelTf:TextField = new TextField();
//設定labelTf的各屬性值
with(labelTf){
x = -50;
y = -10;
width = 100;
autoSize = TextFieldAutoSize.CENTER;
//multiline = true;
//wordWrap = true;
defaultTextFormat = myTextFormat;
text = "removeChild";
}
//建構Sprite類別實體指定給container,做為aaa的容器物件,附加到主時間軸上
var container:Sprite = new Sprite();
addChild(container);
//建構内建資源類別SwitchBtn類別的實體,並指定給MovieClip資料型別的Switch_btn
//内建資源類別SwitchBtn類別的基底類別為MovieClip類別
var switch_btn:MovieClip = new SwitchBtn();
addChild(switch_btn);
switch_btn.x = 129;
switch_btn.y = 296;
//開啟switch_btn的buttonMode屬性,使有按鈕滑入滑出按壓互動與出現掌形指標
switch_btn.buttonMode = true;
//mouseChildren - 判斷物件的子系是否支援啟用滑鼠或使用者輸入裝置。
//如果啟用某個物件,則使用者可以使用滑鼠或使用者輸入裝置,與其進行互動。
//預設值為 true。
switch_btn.mouseChildren = false;
//將labelTf加入switch_btn為子實體
switch_btn.addChild(labelTf);
//建構Sprite類別實體指定給aaa;指定aaa各屬性值
var aaa:Sprite = new Sprite();
with(aaa.graphics){
//graphics類別繪圖
lineStyle(10, 0xFF22ff, 1, false, LineScaleMode.VERTICAL, CapsStyle.NONE, JointStyle.MITER, 10);
beginFill(0xffff55);
moveTo(50, 50);
lineTo(520, 160);
lineTo(320, 300);
lineTo(50, 50);
endFill();
}
//將aaa加入container為子實體
container.addChild(aaa);
//宣告flag布林變數,初始值為true,做為switch_btn切換作用之判斷
var flag:Boolean = true;
//switch_btn廣播MouseEvent.CLICK事件給removeSprite偵聽
switch_btn.addEventListener(MouseEvent.CLICK, removeSprite);
//
function removeSprite(e:MouseEvent):void{
if (flag){
container.removeChild(aaa);
flag = false;
labelTf.text = "addChild";
}else{
container.addChild(aaa);
flag = true;
labelTf.text = "removeChild";
}
//remove_btn.removeEventListener(MouseEvent.CLICK, removeSprite);
}
適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__●flash.display.DisplayObjectContainer
適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__●flash.display.Graphics
適用於 Adobe Flash Professional CS5 的 ActionScript 3.0 參考__●flash.display.Graphics__lineStyle()方法


沒有留言:
張貼留言