J'ai une occurrence de MovieClip qui peut être déplacée autour de la scène en utilisant startDrag() et stopDrag(). L'instance a également des MovieClips enfants utilisant addChild(). Le parent déplace les enfants en faisant glisser, ce qui est bien. Les enfants ont leur propre startDrag() et stopDrag() qui devraient s'appliquer uniquement à l'objet enfant, mais il déplace également le parent et les autres enfants. Lorsque vous cliquez sur un enfant, l'événement MouseEvent de l'enfant est appelé, tout comme le parent.AS3 - L'enfant déplace le parent en utilisant startDrag
public class Component extends MovieClip {
private var nodes_array:Array = new Array();
public function Component() {
x = 60;
y = 100;
nodes_array.push(addChild(new Node(50, 50)));
nodes_array.push(addChild(new Node(150, 150)));
addEventListener(MouseEvent.MOUSE_DOWN, startDraggingComponent);
addEventListener(MouseEvent.MOUSE_UP, stopDraggingComponent);
}
private function startDraggingComponent(me:MouseEvent):void {
this.startDrag();
}
private function stopDraggingComponent(me:MouseEvent):void {
this.stopDrag();
}
public class Node extends MovieClip {
public function Node(x:int, y:int) {
this.x = x;
this.y = y;
addEventListener(MouseEvent.MOUSE_DOWN, startDraggingNode);
addEventListener(MouseEvent.MOUSE_UP, stopDraggingNode);
}
private function startDraggingNode(me:MouseEvent):void {
this.startDrag();
}
private function stopDraggingNode(me:MouseEvent):void {
this.stopDrag();
}