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()方法
沒有留言:
張貼留言