2017-09-16 8 views
0

複数のムービークリップがグリッド上を移動でき、ドラッグすると複製されて「オリジナル」がそのまま残ります。 なぜ私のコードに複製されますか?Flash as3 Var movieClip duplicates

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

フレームスクリプトですか?はいの場合、タイムラインには何フレームありますか? P.S.コードを書式設定します。フォーマットされていないコードは、実際には追跡が困難です。 – Organis

+0

あなたのコードはステージに1球を追加するだけです。どのように複数のドラッグ可能なムービークリップがありますか? –

+0

@ManuelOttoループ内にありますが、フォーマットが正しくないために明らかではありません。 – Organis

答えて

0

重複していないため、複数のムービークリップが重ねて表示されます。 正確に同じ位置に追加する行ごとに新しいボールを追加します。

どのようにボールを配布するのか分かりませんが、 ball.y = tileSize * 5;ball.y = posY;と置き換えて、私の話題を確認してください。

+0

ありがとう、私はそれが起こっているのを見るが、私が探しているのはただのムービークリップだけである。同じムービークリップをもう一度追加するにはどうすればよいですか? – too1s

+0

ボールのロジック全体のコードをforループの外側に置きます(22行目から41行目) –

+0

これは、多くの感謝です! – too1s