Avoir plusieurs MovieClips étant capables de se déplacer sur une grille, une fois que vous l'avez fait glisser, il semble que cela se duplique et que l'original reste en place. Qu'est-ce qui provoque sa duplication dans mon code?Flash as3 Var movieClip duplique
import flash.display.MovieClip
[SWF(width = 1300, height = 1000)]
var tileSize: int = 100;
var cols: int = stage.stageWidth/tileSize;
var rows: int = stage.stageHeight/tileSize;
var grid: Sprite = Sprite(addChild(new Sprite()));
grid.graphics.lineStyle(0, 0x000000, 0);
var i: int = 0;
for (i = 1; i < cols; i++) {
var posX: Number = i * tileSize
grid.graphics.moveTo(posX, 0);
grid.graphics.lineTo(posX, stage.stageHeight);
}
for (i = 1; i < rows; i++) {
var posY: Number = i * tileSize
grid.graphics.moveTo(0, posY);
grid.graphics.lineTo(stage.stageWidth, posY);
var ball: the_ball = new the_ball();
addChild(ball);
ball.x = tileSize * 5;
ball.y = tileSize * 5;
ball.buttonMode = true;
ball.addEventListener(MouseEvent.MOUSE_DOWN, onDown);
function onDown(evt: MouseEvent): void {
addEventListener(Event.ENTER_FRAME, onRunSnapping);
}
function onRunSnapping(evt: Event): void {
ball.x = Math.round(mouseX/tileSize) * tileSize;
ball.y = Math.round(mouseY/tileSize) * tileSize;
}
stage.addEventListener(MouseEvent.MOUSE_UP, onUp);
function onUp(evt: MouseEvent): void {
removeEventListener(Event.ENTER_FRAME, onRunSnapping);
}
}
S'agit-il d'un script de trame? Si oui, combien de cadres avez-vous sur votre timeline? P.S. Formatez votre code. Le code non formaté est vraiment difficile à suivre. – Organis
Votre code ajoute seulement 1 balle à la scène. Comment se fait-il qu'il y ait plusieurs MovieClips draggables? –
@ManuelOtto C'est à l'intérieur de la boucle, mais ce n'est pas évident en raison d'un mauvais formatage. – Organis