package { import flash.display.Sprite; import flash.display.SpreadMethod; import flash.display.SimpleButton; import flash.events.MouseEvent; import flash.text.TextField; public class TestReparent extends Sprite { private var container1:Sprite; private var container2:Sprite; private var container2_1:Sprite; private var container2_2:Sprite; private var item:Sprite; private var sb1:SimpleButton; private var sb2:SimpleButton; private var sb3:SimpleButton; private var sb4:SimpleButton; public function TestReparent() { //建立第一塊容器 container1 = new Sprite(); container1.graphics.beginFill(0xff0000, 0.5); container1.graphics.drawRoundRect(0, 0, 400, 100, 20, 20); container1.graphics.endFill(); this.addChild(container1); container1.name = "container1"; container1.x = 10; container1.y = 10;
//建立第二塊容器 container2 = new Sprite(); container2.graphics.beginFill(0x00ff00, 0.5); container2.graphics.drawRoundRect(0, 0, 400, 100, 20, 20); container2.graphics.endFill();
this.addChild(container2); container2.name = "container2"; container2.x = 10; container2.y = 120;
//在第二塊容器中,建立第一塊子容器 container2_1 = new Sprite(); container2_1.graphics.beginFill(0xffff00, 0.8); container2_1.graphics.drawRoundRect(0, 0, 185, 80, 20, 20); container2_1.graphics.endFill();
container2.addChild(container2_1); container2_1.name = "container2_1"; container2_1.x = 10; container2_1.y = 10;
//在第二塊容器中,建立第二塊子容器 container2_2 = new Sprite(); container2_2.graphics.beginFill(0xffff00, 0.8); container2_2.graphics.drawRoundRect(0, 0, 185, 80, 20, 20); container2_2.graphics.endFill();
container2.addChild(container2_2); container2_2.name = "container2_2"; container2_2.x = 205; container2_2.y = 10; //在第一塊容器中,建立一個物體 item = new Sprite(); item.graphics.beginFill(0x0000ff, 0.9); item.graphics.drawCircle(-10, -10, 20); item.graphics.endFill(); container1.addChild(item); item.x = (container1.width) / 2; item.y = (container1.height) / 2; //按鈕 sb1 = createNewButton("搬移到容器2"); sb1.addEventListener(MouseEvent.CLICK, sb1_click); this.addChild(sb1); sb1.x = 0; sb1.y = 0;
sb2 = createNewButton("搬移到容器2的子容器1"); sb2.addEventListener(MouseEvent.CLICK, sb2_click); this.addChild(sb2); sb2.x = 0; sb2.y = 30;
sb3 = createNewButton("搬移到容器2的子容器2"); sb3.addEventListener(MouseEvent.CLICK, sb3_click); this.addChild(sb3); sb3.x = 0; sb3.y = 60; sb4 = createNewButton("回到容器1"); sb4.addEventListener(MouseEvent.CLICK, sb4_click); this.addChild(sb4); sb4.x = 0; sb4.y = 90; } private function createNewButton(str:String):SimpleButton { var txt:TextField = new TextField(); txt.text = str; txt.autoSize = flash.text.TextFieldAutoSize.LEFT;
var upState:Sprite = new Sprite(); upState.graphics.beginFill(0xcccccc, 1.0); upState.graphics.drawRoundRect(0, 0, txt.width+10, txt.height, 5, 5); upState.graphics.endFill(); upState.addChild(txt); return new SimpleButton(upState, upState, upState, upState); }
private function sb1_click(event:MouseEvent):void { container2.addChild(item); item.x = (container2.width) / 2; item.y = (container2.height) / 2; trace("parent = " + item.parent.name); }
private function sb2_click(event:MouseEvent):void { container2_1.addChild(item); item.x = (container2_1.width) / 2; item.y = (container2_1.height) / 2; trace("parent = " + item.parent.name); }
private function sb3_click(event:MouseEvent):void { container2_2.addChild(item); item.x = (container2_2.width) / 2; item.y = (container2_2.height) / 2; trace("parent = " + item.parent.name); }
private function sb4_click(event:MouseEvent):void { container1.addChild(item); item.x = (container1.width) / 2; item.y = (container1.height) / 2; trace("parent = " + item.parent.name); } } }
|