Copy link to clipboard
Copied
The first line works, and adds the movieclip "MyMC" from the library through AS Linkage.
I would like to reuse the function so i can replace MyMC with MyMC2, MyMC3 etc..
Any idea how this is done?
layer3Holder.myMC.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
//layer3Holder.myMC2.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
//layer3Holder.myMC3.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
//layer3Holder.myMC4.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
function moveMC(e:MouseEvent){
var newMC:MyMC = new MyMC();
layer3Holder.addChild(newMC);
newMC.x=250;
newMC.y=250;
newMC.addEventListener( MouseEvent.DOUBLE_CLICK, onDoubleClick );
newMC.addEventListener(MouseEvent.MOUSE_DOWN, dragMC);
newMC.addEventListener(MouseEvent.MOUSE_UP, dropMC);
newMC.addEventListener(MouseEvent.MOUSE_OUT, dropMC);
newMC.addEventListener(TransformGestureEvent.GESTURE_ZOOM, gestureZoomHandler);
newMC.addEventListener(TransformGestureEvent.GESTURE_ROTATE, gestureRotateHandler);
newMC.mouseChildren = false;
newMC.doubleClickEnabled = true;
}
function onDoubleClick(e:MouseEvent){
e.currentTarget.parent.removeChild(e.currentTarget);
}
function dragMC(e:MouseEvent){
e.currentTarget.startDrag();
}
function dropMC(e:MouseEvent){
e.currentTarget.stopDrag();
}
function gestureZoomHandler(e:TransformGestureEvent):void
{
e.currentTarget.scaleX *= e.scaleX;
e.currentTarget.scaleY *= e.scaleX;
}
function gestureRotateHandler(e:TransformGestureEvent):void
{
e.currentTarget.rotation += e.rotation;
}
assuming those mousedown dispatcher references are also names, you can use:
...
layer3Holder.myMC.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
//layer3Holder.myMC2.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
//layer3Holder.myMC3.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
//layer3Holder.myMC4.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
var newMC:MovieClip;
function moveMC(e:MouseEvent){
// do something with previous newMC's?
// code here.
if(e.currentTarget.name.substr(4).length>0){
var C:
Copy link to clipboard
Copied
assuming those mousedown dispatcher references are also names, you can use:
layer3Holder.myMC.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
//layer3Holder.myMC2.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
//layer3Holder.myMC3.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
//layer3Holder.myMC4.addEventListener(MouseEvent.MOUSE_DOWN, moveMC);
var newMC:MovieClip;
function moveMC(e:MouseEvent){
// do something with previous newMC's?
// code here.
if(e.currentTarget.name.substr(4).length>0){
var C:Class=Class(getDefinitionByName("MyMC"+e.currentTarget.name.substr(4)));
newMC=new C();
} else {
newMC=new MyMC();
}layer3Holder.addChild(newMC);
newMC.x=250;
newMC.y=250;
newMC.addEventListener( MouseEvent.DOUBLE_CLICK, onDoubleClick );
newMC.addEventListener(MouseEvent.MOUSE_DOWN, dragMC);
newMC.addEventListener(MouseEvent.MOUSE_UP, dropMC);
newMC.addEventListener(MouseEvent.MOUSE_OUT, dropMC);
newMC.addEventListener(TransformGestureEvent.GESTURE_ZOOM, gestureZoomHandler);
newMC.addEventListener(TransformGestureEvent.GESTURE_ROTATE, gestureRotateHandler);
newMC.mouseChildren = false;
newMC.doubleClickEnabled = true;
}
}
function onDoubleClick(e:MouseEvent){
e.currentTarget.parent.removeChild(e.currentTarget);
}
function dragMC(e:MouseEvent){
e.currentTarget.startDrag();
}
function dropMC(e:MouseEvent){
e.currentTarget.stopDrag();
}
function gestureZoomHandler(e:TransformGestureEvent):void
{
e.currentTarget.scaleX *= e.scaleX;
e.currentTarget.scaleY *= e.scaleX;
}
function gestureRotateHandler(e:TransformGestureEvent):void
{
e.currentTarget.rotation += e.rotation;
}
Copy link to clipboard
Copied
Thanks alot!
Copy link to clipboard
Copied
you're welcome.
Find more inspiration, events, and resources on the new Adobe Community
Explore Now