gzzle
%Europe/Berlin %100 %2009, 02:24
Ola!
Ik heb een vraagje.. of iemand mij opweg kan helpen...
Ik heb een container, met daarin een mc. Deze mc moet uit de container worden gedragged en in een andere container gedropped kunnen worden. So far so good...
Alleen heb ik nu met meerdere droptargets te maken. Ik heb een array met 64 droptargets. Ik heb die 64 mc's netjes middels een array op een bepaalde manier op de stage geplaatst. Het punt is nu, dat ik het niet voor elkaar krijg om de mc die draggable is (wat er uiteindelijk 10 worden), op één van de 64 droptargets te kunnen plaatsen. Althans, de 64 mc's krijg ik niet als droptarget voor elkaar. Waarschijnlijk doe ik iets fout, maar ik kom er maar niet uit wat het is.
Hier is de code:
package
{
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.display.SimpleButton;
import flash.text.*;
import fl.controls.Button;
import flash.display.BitmapData;
public class main2 extends Sprite
{
private var containers:Array = new Array(64);
private var bieb:MovieClip;
private var myFormat:TextFormat = new TextFormat();
private var wissen:Button = new Button();
private var weergave:Button = new Button();
private var ledSym:MovieClip;
private var _dragging:Boolean;
private var _lastContainer:MovieClip;
private var _originx:Number;
private var _originy:Number;
public function main2()
{
bieb = new mc_bieb();
bieb.x = 36;
bieb.y = 109.2;
addChild(bieb);
_dragging = false;
_lastContainer = bieb;
ledSym = new mc_led_sym();
ledSym.x = 53;
ledSym.y = 30;
ledSym.buttonMode = true;
bieb.addChild(ledSym);
ledSym.addEventListener(MouseEvent.MOUSE_DOWN, dragLed);
ledSym.addEventListener(MouseEvent.MOUSE_UP,dropLe d);
for (var i:int = 0; i < containers.length; i++)
{
containers[i] = new mc_container();
containers[i].x = 383.2 + (containers[i].width + 19) * i - (Math.ceil((i + 1) / 8 - 1) * 428);
containers[i].y = 111 + (Math.ceil((i + 1) / 8) - 1) * 54;
addChild(containers[i]);
}
}
private function dragLed (event:MouseEvent):void
{
if (!_dragging)
{
_originx = ledSym.x;
_originy = ledSym.y;
_lastContainer.removeChild(ledSym);
ledSym.x = mouseX;
ledSym.y = mouseY;
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveLed);
stage.addChild(ledSym);
_dragging = true;
}
}
private function dropLed (event:MouseEvent):void
{
_dragging = false;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveLed);
if (ledSym.hitTestObject(bieb))
{
stage.removeChild(ledSym);
bieb.addChild(ledSym);
ledSym.x = _originx;
ledSym.y = _originy;
_lastContainer = bieb;
}
//HIER IS WAAR HET FOUT GAAT
else if (ledSym.hitTestObject(containers[i]))
{
stage.removeChild(ledSym);
containers[i].addChild(ledSym);
ledSym.x = containers[i].x;
ledSym.y = containers[i].y;
_lastContainer = containers[i];
}
// TOT HIER.
else
{
stage.removeChild(ledSym);
_lastContainer.addChild(ledSym);
ledSym.x = _originx;
ledSym.y = _originy;
}
}
private function moveLed(event:MouseEvent):void
{
ledSym.x = stage.mouseX;
ledSym.y = stage.mouseY;
}
}
}
iemand een idee???
thnx.
Ik heb een vraagje.. of iemand mij opweg kan helpen...
Ik heb een container, met daarin een mc. Deze mc moet uit de container worden gedragged en in een andere container gedropped kunnen worden. So far so good...
Alleen heb ik nu met meerdere droptargets te maken. Ik heb een array met 64 droptargets. Ik heb die 64 mc's netjes middels een array op een bepaalde manier op de stage geplaatst. Het punt is nu, dat ik het niet voor elkaar krijg om de mc die draggable is (wat er uiteindelijk 10 worden), op één van de 64 droptargets te kunnen plaatsen. Althans, de 64 mc's krijg ik niet als droptarget voor elkaar. Waarschijnlijk doe ik iets fout, maar ik kom er maar niet uit wat het is.
Hier is de code:
package
{
import flash.display.MovieClip;
import flash.display.Shape;
import flash.display.Sprite;
import flash.display.Stage;
import flash.events.MouseEvent;
import flash.geom.Point;
import flash.display.SimpleButton;
import flash.text.*;
import fl.controls.Button;
import flash.display.BitmapData;
public class main2 extends Sprite
{
private var containers:Array = new Array(64);
private var bieb:MovieClip;
private var myFormat:TextFormat = new TextFormat();
private var wissen:Button = new Button();
private var weergave:Button = new Button();
private var ledSym:MovieClip;
private var _dragging:Boolean;
private var _lastContainer:MovieClip;
private var _originx:Number;
private var _originy:Number;
public function main2()
{
bieb = new mc_bieb();
bieb.x = 36;
bieb.y = 109.2;
addChild(bieb);
_dragging = false;
_lastContainer = bieb;
ledSym = new mc_led_sym();
ledSym.x = 53;
ledSym.y = 30;
ledSym.buttonMode = true;
bieb.addChild(ledSym);
ledSym.addEventListener(MouseEvent.MOUSE_DOWN, dragLed);
ledSym.addEventListener(MouseEvent.MOUSE_UP,dropLe d);
for (var i:int = 0; i < containers.length; i++)
{
containers[i] = new mc_container();
containers[i].x = 383.2 + (containers[i].width + 19) * i - (Math.ceil((i + 1) / 8 - 1) * 428);
containers[i].y = 111 + (Math.ceil((i + 1) / 8) - 1) * 54;
addChild(containers[i]);
}
}
private function dragLed (event:MouseEvent):void
{
if (!_dragging)
{
_originx = ledSym.x;
_originy = ledSym.y;
_lastContainer.removeChild(ledSym);
ledSym.x = mouseX;
ledSym.y = mouseY;
stage.addEventListener(MouseEvent.MOUSE_MOVE, moveLed);
stage.addChild(ledSym);
_dragging = true;
}
}
private function dropLed (event:MouseEvent):void
{
_dragging = false;
stage.removeEventListener(MouseEvent.MOUSE_MOVE, moveLed);
if (ledSym.hitTestObject(bieb))
{
stage.removeChild(ledSym);
bieb.addChild(ledSym);
ledSym.x = _originx;
ledSym.y = _originy;
_lastContainer = bieb;
}
//HIER IS WAAR HET FOUT GAAT
else if (ledSym.hitTestObject(containers[i]))
{
stage.removeChild(ledSym);
containers[i].addChild(ledSym);
ledSym.x = containers[i].x;
ledSym.y = containers[i].y;
_lastContainer = containers[i];
}
// TOT HIER.
else
{
stage.removeChild(ledSym);
_lastContainer.addChild(ledSym);
ledSym.x = _originx;
ledSym.y = _originy;
}
}
private function moveLed(event:MouseEvent):void
{
ledSym.x = stage.mouseX;
ledSym.y = stage.mouseY;
}
}
}
iemand een idee???
thnx.