2013-09-30 149 views
1

我做了一個flash/actionscript射擊遊戲,這是我爲子彈創建的一個類。有setInterval麻煩

class Class.Bullet { 
    public static var self:MovieClip; 
    private static var interval; 

    public function Bullet(X, Y) { 
    self = _root.createEmptyMovieClip('self', _root.getNextHighestDepth()); 
    self._x = X; 
    self._y = Y; 
    self.beginFill(0xFFFFFF); 
    self.moveTo(-2, 0); 
    self.lineTo(2, 0); 
    self.lineTo(2, 10); 
    self.lineTo(-2, 10); 
    self.lineTo(-2, 0); 
    self.endFill(); 

    interval = setInterval(move, 1); 
    } 

    private function move() { 
    self._x++; 
    } 
} 

它的工作好,但出於某種原因,我無法理解,每一個新的子彈創建「的setInterval」時間獲取除了新的setInterval傳遞到下一個子彈。換句話說,當我射擊第二顆子彈時,第一顆子彈停止移動,第二顆子彈以兩倍的速度移動。

歡呼聲!

P.S:當您使用createEmptyMovieClip你需要確保每個新片段被賦予一個唯一的名稱,我使用的AS2

回答

0

。自從我使用ActionScript 2.0以來已經有一段時間了,但我認爲一種常見模式是將深度附加到名稱上,如下所示:

var depth = _root.getNextHighestDepth(); 
self = _root.createEmptyMovieClip('self_' + depth, depth);