1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51
| // Définition des objets et des zones.
var objets:Array = [objet0, objet1];
var zones:Array = [zone0, zone1];
// Remplissage du tableau XY avec les coordonnées de chaque zone.
var zonesXY:Array = new Array;
for(var j:int = 0; j < zones.length; j++)
{
zonesXY[j] = [zones[j].x, zones[j].y];
}
var currentClip:MovieClip;
for(var i:int = 0; i < objets.length; i++) {
objets[i].buttonMode = true;
objets[i].addEventListener(MouseEvent.MOUSE_DOWN, item_onMouseDown);
}
function item_onMouseDown(event:MouseEvent):void {
currentClip = MovieClip(event.currentTarget);
addChild(currentClip); //bring to the front
currentClip.startDrag();
stage.addEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp);
}
function stage_onMouseUp(event:MouseEvent):void {
stage.removeEventListener(MouseEvent.MOUSE_UP, stage_onMouseUp);
currentClip.stopDrag();
// Teste une correspondance entre le hitPoint et une entrée du tableau zonesXY.
for(var i:int = 0; i < zones.length; i++)
{
if (currentClip.hitTestPoint(zonesXY[i][0], zonesXY[i][1], true))
{
currentClip.x = zonesXY[i][0];
currentClip.y = zonesXY[i][1];
}
}
}
// Afficher la solution
solution.addEventListener(MouseEvent.CLICK, solve);
function solve(event:MouseEvent):void
{
for(var k:int = 0; k < objets.length; k++)
{
objets[k].x = zonesXY[k][0];
objets[k].y = zonesXY[k][1];
}
} |
Partager