2017-09-16 224 views
0

讓多個影片剪輯能夠在網格上移動,一旦拖動它,它就會重複,並且「原始」仍然保留。 是什麼導致它在我的代碼中重複?Flash as3 Var movieClip複製品

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

它是一個框架腳本?如果是,您的時間表上有多少幀?附:格式化您的代碼。未格式化的代碼真的很難遵循。 – Organis

+0

您的代碼僅在舞臺上增加了1個球。怎麼會有多個可拖動的影片剪輯? –

+0

@ManuelOtto它位於循環內部,但由於格式不當而不明顯。 – Organis

回答

0

這不是重複的,只有很多movieclip堆疊在一起。 您爲添加在同一位置上的每一行添加一個新球。

我不知道你是如何分配球的,但是試着用 ball.y = tileSize * 5;替換ball.y = posY;看看我在說什麼。

+0

謝謝,我看到它在發生,但我所尋找的僅僅是一個動作片。我如何再次添加相同的動畫片段? – too1s

+0

只需在for循環之外放置球邏輯的整個代碼(第22行到第41行) –

+0

就是這樣,非常感謝! – too1s