2015-07-28 88 views
1

所以我試圖讓一個AvoiderGame教程我YT,我發現有該程序的故障。 (有人告訴我Timer對象接受0參數)AS3毛刺(定時器對象)

然後我想,我可能會錯過一個支架或一些地方造成錯誤,但現在,它似乎是一個Flash Professional中毛刺

信息:

文件:Enemy.as(與「敵人」在main.fla文件的MC符號)

package{ 
    import flash.display.MovieClip; 
    import flash.utils.Timer; 
    import flash.events.TimerEvent; 

    public class Enemy extends MovieClip{ 
     private var speeds:Array = new Array(); 
     private var counter:Timer = new Timer(1); <-- Line 8 
     private var speed:int = 0; 

     public function Enemy(xPos:int, yPos:int, speeds:Array){ 
      x = xPos; 
      y = yPos; 
      this.speeds = speeds; 
      initalize(); 

      counter.start(); 
      counter.addEventListener(TimerEvent.TIMER, update); 
     } 

     protected function initalize(){ 
      speed = speeds[0] + Math.round(Math.random()*(speeds[1] - speeds[0])); 
     } 

     protected function update(e:TimerEvent){ 
      y += speed; 
     } 

     public function setPos(xVal:int, yVal:int){ 
      x = xVal; 
      y = yVal; 
     } 

     public function movePos(xVal:int, yVal:int){ 
      x += xVal; 
      y += yVal; 
     } 
    } 
} 

(我代替我與「用戶」的用戶名這樣的人不會知道我的真名)

此代碼給我下面的錯誤:

C:\用戶\用戶\桌面\閃光的東西\躲避多彩\ Enemy.as,8號線, 列35 1136:不正確的數的論據。預計爲0.

C:\ Users \ User \ Desktop \ Flash Stuff \ Avoider DeluX \ Enemy.as,第8行, 列35 1136:參數數量不正確。預計0

(是的,錯誤也出現2次)

+1

您有一個名爲的東西「定時器」可能的方法也許一個對象,但它與類定時器衝突。 – BotMaster

回答

1

這讓我覺得,你可能另一個Timer類命名空間碰撞。嘗試每次精確全名:

private var counter:flash.utils.Timer = new flash.utils.Timer(1); 
+0

謝謝,我發現該錯誤是,我有一個名爲定時器符號,但是當我後來改成了TimeSlow,我忘了去改變它掛到TimeSlow也類名。 THX :) – Plas

0

我認爲這是與參數問題。我注意到的一件事是計時器接受2個參數。第一個是以毫秒爲單位的延遲。第二個是repeatCount由於文檔說

低於20毫秒較低的延遲,不建議是可選

所以我會建議使用一個數字超過20毫秒或1000一秒鐘。

+0

只要你知道,我試過2個參數,它仍然出現了一個錯誤。另外,第二個參數默認爲0,這在我的例子中給了我一個無限期重複的計時器 – Plas