Fazer4341
%Europe/Berlin %634 %2010, 16:13
Ha, ik probeer al een tijdje om 1 functie op 7 movieclips te gebruiken.. Leek me tamelijk eenvoudig, maar krijg het niet voor elkaar...
Lukte wel met 7 individuele EventListeners en 7x dezelfde functie..maar dat is niet de juiste manier..
Nu heb ik dit:
import caurina.transitions.*;
import flash.display.MovieClip;
var cirX:Number = 60;
var cirY:Number = 60;
var someNumx:Number = Math.ceil(Math.random() * 576);
var someNumy:Number = Math.ceil(Math.random() * 768);
object1.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object2.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object3.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object4.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object5.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object6.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object7.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
function beginDrag(evt:Event):void
{
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveM C);
stage.addEventListener(MouseEvent.MOUSE_UP,endDrag );
}
function moveMC(evt:MouseEvent):void
{
Tweener.addTween(evt.currentTarget,{x:mouseX,y:mou seY,time:0.5,transition:"easIn"});
evt.updateAfterEvent();
}
function endDrag(evt:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE,mo veMC);
if (evt.currentTarget.hitTestObject(target_mc))
{
Tweener.addTween(evt.currentTarget,{x:75,
y:700,
time:1,
transition:"easeIn"});
}
else
{
Tweener.addTween(evt.currentTarget,{x:someNumx,
y:someNumy,
time:1,
transition:"easeIn"});
}
stage.removeEventListener(MouseEvent.MOUSE_UP,endD rag);
}
Ik heb zeven movieclips genaamd Object1, Object2....Object7 en een target_mc. Als ik er een aanklik moet ie de muis volgen, totdat ik de muis weer los laat. Als dat loslaten in de buurt van de target_mc is moet ie daarheen springen. Zo niet kiest ie een eigen x en y random..
Het gekke is zoals hieronder werkt het prima..maar dit moet korter kunnen...
import caurina.transitions.*;
var cirX:Number = 60;
var cirY:Number = 60;
var someNumx:Number = Math.ceil(Math.random() * 576);
var someNumy:Number = Math.ceil(Math.random() * 768);
object1.addEventListener(MouseEvent.MOUSE_DOWN,beg inDrag1);
function beginDrag1(e:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveM C1);
stage.addEventListener(MouseEvent.MOUSE_UP,endDrag 1);
}
function endDrag1(e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE,mo veMC1);
if (object1.hitTestObject(target_mc))
{
Tweener.addTween(object1,{x:75,
y:700,
time:1,
transition:"easeIn"});
}
else
{
Tweener.addTween(object1,{x:someNumx,
y:someNumy,
time:1,
transition:"easeIn"});
}
stage.removeEventListener(MouseEvent.MOUSE_UP,endD rag1);
}
function moveMC1(e:MouseEvent):void
{
Tweener.addTween(object1,{x:mouseX,y:mouseY,time:0 .5,transition:"easIn"});
e.updateAfterEvent();
}
En dit zelfde verhaal dan zeven keer onder elkaar...:X
Hoor het graag wat ik fout doe..nu krijg ik een stage error..#2071
Dat komt denk ik doordat ik de stage.addEventListener(MouseEvent.MOUSE_MOVE,moveM C); op de stage laat luisteren...maargoed, in de uitgeschreven versie doet ie het...
F
Lukte wel met 7 individuele EventListeners en 7x dezelfde functie..maar dat is niet de juiste manier..
Nu heb ik dit:
import caurina.transitions.*;
import flash.display.MovieClip;
var cirX:Number = 60;
var cirY:Number = 60;
var someNumx:Number = Math.ceil(Math.random() * 576);
var someNumy:Number = Math.ceil(Math.random() * 768);
object1.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object2.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object3.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object4.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object5.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object6.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
object7.addEventListener(MouseEvent.MOUSE_DOWN, beginDrag);
function beginDrag(evt:Event):void
{
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveM C);
stage.addEventListener(MouseEvent.MOUSE_UP,endDrag );
}
function moveMC(evt:MouseEvent):void
{
Tweener.addTween(evt.currentTarget,{x:mouseX,y:mou seY,time:0.5,transition:"easIn"});
evt.updateAfterEvent();
}
function endDrag(evt:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE,mo veMC);
if (evt.currentTarget.hitTestObject(target_mc))
{
Tweener.addTween(evt.currentTarget,{x:75,
y:700,
time:1,
transition:"easeIn"});
}
else
{
Tweener.addTween(evt.currentTarget,{x:someNumx,
y:someNumy,
time:1,
transition:"easeIn"});
}
stage.removeEventListener(MouseEvent.MOUSE_UP,endD rag);
}
Ik heb zeven movieclips genaamd Object1, Object2....Object7 en een target_mc. Als ik er een aanklik moet ie de muis volgen, totdat ik de muis weer los laat. Als dat loslaten in de buurt van de target_mc is moet ie daarheen springen. Zo niet kiest ie een eigen x en y random..
Het gekke is zoals hieronder werkt het prima..maar dit moet korter kunnen...
import caurina.transitions.*;
var cirX:Number = 60;
var cirY:Number = 60;
var someNumx:Number = Math.ceil(Math.random() * 576);
var someNumy:Number = Math.ceil(Math.random() * 768);
object1.addEventListener(MouseEvent.MOUSE_DOWN,beg inDrag1);
function beginDrag1(e:MouseEvent):void
{
stage.addEventListener(MouseEvent.MOUSE_MOVE,moveM C1);
stage.addEventListener(MouseEvent.MOUSE_UP,endDrag 1);
}
function endDrag1(e:MouseEvent):void
{
stage.removeEventListener(MouseEvent.MOUSE_MOVE,mo veMC1);
if (object1.hitTestObject(target_mc))
{
Tweener.addTween(object1,{x:75,
y:700,
time:1,
transition:"easeIn"});
}
else
{
Tweener.addTween(object1,{x:someNumx,
y:someNumy,
time:1,
transition:"easeIn"});
}
stage.removeEventListener(MouseEvent.MOUSE_UP,endD rag1);
}
function moveMC1(e:MouseEvent):void
{
Tweener.addTween(object1,{x:mouseX,y:mouseY,time:0 .5,transition:"easIn"});
e.updateAfterEvent();
}
En dit zelfde verhaal dan zeven keer onder elkaar...:X
Hoor het graag wat ik fout doe..nu krijg ik een stage error..#2071
Dat komt denk ik doordat ik de stage.addEventListener(MouseEvent.MOUSE_MOVE,moveM C); op de stage laat luisteren...maargoed, in de uitgeschreven versie doet ie het...
F