2017-09-16 1 views
0

Wenn sich mehrere Movieclips auf einem Raster bewegen können, wird das Duplikat nach dem Ziehen kopiert und das Original bleibt erhalten. Was verursacht es in meinem Code zu duplizieren?Flash as3 Var movieClip Duplikate

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); 
    } 
} 
+0

Ist es ein Rahmenskript? Wenn ja, wie viele Frames haben Sie auf Ihrer Timeline? P.S. Formatieren Sie Ihren Code. Unformatierter Code ist wirklich schwer zu befolgen. – Organis

+0

Dein Code fügt nur 1 Ball zur Bühne hinzu. Warum gibt es mehrere ziehbare Movieclips? –

+0

@ManuelOtto Es ist innerhalb der Schleife, aber es ist nicht offensichtlich wegen der schlechten Formatierung. – Organis

Antwort

0

Es ist nicht duplizierend, es sind nur viele Movieclips übereinander gestapelt. Sie fügen einen neuen Ball für jede Zeile hinzu, die Sie an derselben Position hinzufügen.

Ich weiß nicht, wie Sie die Kugeln verteilt werden sollen, aber versuchen Sie, ball.y = tileSize * 5; mit ball.y = posY; zu ersetzen, um zu sehen, worüber ich spreche.

+0

Danke, ich sehe es passiert, aber alles, was ich suche, ist nur der eine Filmclip, um sich zu bewegen. Wie füge ich denselben Movieclip wieder hinzu? – too1s

+0

Einfach den ganzen Code für die Balllogik außerhalb der for-Schleife (Zeile 22 bis Zeile 41) setzen –

+0

Das war's, vielen Dank! – too1s