Мы очень долго мучались о том как же изменить родителя у дублированного клипа, или у загруженного, выход был всего один это использовать attachMovie, но теперь благодаря тому, что новые экземпляры MovieClip ( Sprite и остальных детей DisplayObject ) создаються с помощью оператора new и добавляються через addChild() или addChildAt() дает нам такую возможность.
Код:
package com.onorange.faq{
import flash.display.*;
import flash.events.*;
public class MoveMC extends Sprite {
private var win1:Window;
private var win2:Window;
private var rect:Rect;
public function MoveMC() {
win1 = new Window(20,20);
win2 = new Window(240,20);
rect = new Rect(win1,win2);
win1.addChild(rect);
addChild(win1);
addChild(win2);
}
}
}
class Window extends Sprite {
public function Window (x:int,y:int) {
graphics.beginFill(0xFF6600);
graphics.drawRect(0,0,200,200);
graphics.endFill();
this.x = x;
this.y = y;
}
}
class Rect extends Sprite {
private var win1:Window;
private var win2:Window;
private var curWin:Window;
public function Rect(win1:Window,win2:Window) {
curWin = win1 = win1;
win2 = win2;
graphics.beginFill(0xFFFFFF);
graphics.drawRect(0,0,50,50);
graphics.endFill();
addEventListener(MouseEventType.CLICK,onClick);
}
private function onClick(evt:MouseEvent):Void {
if(curWin == win1) {
win1.removeChild(this);
win2.addChild(this);
curWin = win2;
}else{
win2.removeChild(this);
win1.addChild(this);
curWin = win1;
}
}
}