2017-10-10 82 views
0

所有這些函數都出現這個錯誤。 setuplayer,makeBalloons和makeBalloon。我複製並粘貼了我的老師的這段代碼。所以我不知道它會在試圖讓這些氣球在遊戲中產卵時發生什麼。在我添加觸摸層之前,它會運行,但沒有氣球產生。所以我決定添加一個觸摸層,然後我得到了這些錯誤。1013錯誤。此屬性只能用於類屬性定義。我在我的代碼中有7個這種錯誤

 private function setupTouchLayer(evt: Event): void { 
      touchLayer.graphics.beginFill(0x000000, 0); 
      touchLayer.graphics.drawRect(0, 0,stage.stageWidth, stage.stageHeight); 
      touchLayer.graphics.endFill(); 


     } 

     private function makeBalloons(): void { 
      balloonSpawnCounter++; 

      if (balloonSpawnCounter > balloonSpawnDelay) { 
       balloonSpawnCounter = 0; 
       balloonSpawnDelay -= difficultyRate; 
       difficulty += difficultyRate; 
       makeBalloon(); 
      } 
     } 

     private function makeBalloon(): void { 
      var i: int; 
      for (i = 0; i < Math.floor(difficulty); i++) { 
       var newBalloon: Balloon = new MouseBalloon(); 

       newBalloon.x = 1050; 
       newBalloon.y = Math.random() * 300 + 150; 

       newBalloon.xVel = (-Math.random() * difficulty) - 5; 
       newBalloon.sinMeter = Math.random() * 10; 
       newBalloon.bobValue = Math.random() * difficulty; 

       newBalloon.addEventListener(Particle.PURGE_EVENT, purgeBalloonHandler); 

       balloonsLayer.addChild(newBalloon); 
       balloons.push(newBalloon); 
      } 
     } 

     private function purgeBalloonHandler(evt: Event): void { 
      var targetBalloon: Particle = Particle(evt.target); 
      purgeBalloon(targetBalloon); 
     } 

     private function purgeBalloon(targetBalloon: Particle): void { 
      targetBalloon.removeEventListener(Particle.PURGE_EVENT, purgeBalloonHandler); 
      try { 
       var i: int; 
       for (i = 0; i < balloons.length; i++) { 
        if (balloons[i].name == targetBalloon.name) { 
         balloons.splice(i, 1); 
         balloonsLayer.removeChild(targetBalloon); 
         i = balloons.length; 
        } 
       } 
      } catch (e: Error) 

      { 
       trace("Failed to delete arrow!", e); 
      } 
     } 

     private function hitTest(shark: Particle): void { 
      for each(var balloon: Balloon in balloons) { 
       if (balloon.status != "Dead" && balloon.hitTestPoint(shark.x, shark.y)) { 
        balloon.destroy(); 

       } 
      } 
     } 

     private function update(evt: Event): void { 


      for each(var balloon: Particle in balloons) { 
       balloon.update(); 
      } 


      makeBalloons(); 
     } 
    } 

} 

}

+4

您是否確實有課程,或者您是否嘗試將其粘貼到框架上? – 3vilguy

+0

@ c.todd - 答案有助於解決您的問題嗎? – BadFeelingAboutThis

回答

3

如果從一個類文件複製和粘貼代碼,變成了時間軸,你必須刪除任何packageclass塊,任何範圍關鍵字,比如privatepublicprotectedfinal

例如,如果您有以下。至於文件:

package com.mystuff { 
    public class ExampleClass extends Object { 
     public function ExampleClass(){ 
      trace("Hello World!"); 
     } 

     private function doSomething():void { 
      trace("Doing something..."); 
     } 
    } 
} 

把那個時間軸上的關鍵幀,你必須將其更改爲:

trace("Hello World"); 

function doSomething():void { 
    trace("Doing Something..."); 
} 

具有相同的名稱作爲類名稱的功能,你想在代碼的頂部是由自身。所有其他功能,只需刪除公共和私人關鍵字。


現在,如果你想使用該代碼在實際的類文件(這是很好的),你會做以下幾點:(假設你只是有代碼,而不是一個文件,並使用Animate/FlashPro作爲您的IDE)。

在AnimateCC中,轉至文件 - > new並選擇ActionScript 3.0 Class。給它與你在代碼中看到的相匹配的類名稱。

粘貼您的代碼。

將該文件保存在與.fla相同的目錄中,假定代碼以package {開頭。如果代碼從package com.mystuff開始,則該文件應保存在名爲mystuff的子文件夾中,該文件夾位於另一個名爲com的文件夾中,該文件夾位於與.fla相同的目錄中。

要使用在時間軸該類文件(或其他類文件),你必須初始化它,像這樣:

import com.mystuff.ExampleClass; 

var ec:ExampleClass = new ExampleClass(); 

ec.dosomething(); 

如果您使用的是類文件,但越來越該錯誤可能意味着您不小心關閉了您的課程區塊,如下所示:

package { 
    public class ExampleClass { 

    }//if you put an extra one of these closing curly braces in your code, it will end your class, or if you on purpose do it like this example. 

    private function dosomething():void { 
     //will error because this function needs to live inside the class block 
    } 
} 
相關問題