Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

How to reuse function to be triggered by several eventlisteners?

New Here ,
Jul 02, 2013 Jul 02, 2013

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;

}

TOPICS
ActionScript
636
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines

correct answers 1 Correct answer

Community Expert , Jul 02, 2013 Jul 02, 2013

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:
...
Translate
Community Expert ,
Jul 02, 2013 Jul 02, 2013

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;

}

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
Jul 02, 2013 Jul 02, 2013

Thanks alot!

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Jul 02, 2013 Jul 02, 2013
LATEST

you're welcome.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines