PDA

Volledige versie bekijken : Slepen meerdere Mc's


pollack
%Europe/Berlin %571 %2010, 13:43
Beste mensen,

Ik heb nu de MC punt die uit de library wordt geladen, en 8 x in -een cirkel achtige vorm- op de stage wordt gezet, vervolgens wordt tussen elke MC een lijn getrokken en een fill gemaakt.

Nu wil ik elke MC afzonderlijk kunnen slepen, en daar loop ik aardig mee vast. Vroeg me af of jullie misschien een idee hadden....

Nog een vraag, is het mogelijk om een hitTest aan die Fill te koppelen die gemaakt wordt?

De Code:

import punt;
var numOfItems:Number = 8;
var moduleLijst:Array = new Array;

var xRadius:Number = stage.stageWidth * 0.1;
var yRadius:Number = stage.stageHeight * 0.1;
var centerX:Number = stage.stageWidth * 0.5;
var centerY:Number = stage.stageHeight * 0.5;

for(var i=0;i<numOfItems;i++)
{
var module:MovieClip = new punt();

module.name = "module" + i;
addChild(module);
module.addEventListener(MouseEvent.MOUSE_DOWN, slepen);
module.angle = i * ((Math.PI*2)/numOfItems);
module.x = (Math.cos(module.angle) * xRadius + centerX)+ Math.random() * 50;
module.y = (Math.sin(module.angle) * yRadius + centerY)+ Math.random() * 50;

moduleLijst[i] = module;


}
trace(moduleLijst[1].name);
var lineDrawing:MovieClip = new MovieClip();
this.addChild(lineDrawing);
setChildIndex(lineDrawing, 1);

this.addEventListener(Event.ENTER_FRAME, lijnen1);

function lijnen1(e:Event):void{

lineDrawing.graphics.clear();
lineDrawing.graphics.lineStyle(1,0x0033ff,0);
lineDrawing.graphics.beginFill(0x669966,1);
lineDrawing.graphics.moveTo(moduleLijst[0].x,moduleLijst[0].y);
drawLines(e);

}

function drawLines(e:Event):void{

for( i in moduleLijst)
{
lineDrawing.graphics.lineTo(moduleLijst[i].x,moduleLijst[i].y);

}

}


function slepen(e:MouseEvent):void{

e.currentTarget.x = root.mouseX;
e.currentTarget.y = root.mouseY;


}

marcvz
%Europe/Berlin %601 %2010, 14:26
Heb er even snel overheen gelezen.
Maar volgens mij voer je de slepen functie alleen uit op mouseDown.
Dat zou op enterFrame moeten worden zodat de x en y positie van je target elke frame geupdate worden naar de positie van de muis.. Of je moet gewoon startDrag gebruiken natuurlijk.

e.l.dam
%Europe/Berlin %636 %2010, 15:16
Wat marcvz zegt :P in je slepen functie "startDrag()" en ook een mouse_up handler maken om het draggen weer te stoppen (stopDrag()).

De hittest kan ja. Als je moeilijk (mooi) wilt gaan doen:

http://troygilbert.com/2009/08/pixel-perfect-collision-detection-revisited/

pollack
%Europe/Berlin %777 %2010, 19:39
Dank, probeerde de startDrag(); te vermijden, je kan niet alles hebben :P