2017-10-10 7 views
0

이러한 모든 기능이이 오류가 발생합니다. setuplayer, makeBalloons 및 makeBalloon. 선생님에게이 코드를 복사하여 붙여 넣었습니다. 그래서 저는이 ballons을 게임에서 스폰하기 위해 붙어있을 수 있었던 것이 무엇인지 모릅니다. 터치 레이어를 추가하기 전에 풍선이 실행되지만 풍선은 생성되지 않습니다. 그래서 터치 레이어를 추가하기로 결정한 다음 이러한 오류가 발생했습니다.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

당신이 타임 라인에, 클래스 파일에서 복사 및 붙여 넣기 코드를하는 경우, 당신은 어떤 package 또는 class 블록을 제거해야하고, 어떤 범위 키워드 private, public, protected, final 같은 등

예를 들어

, 다음이 .as 파일이 있다면 :

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..."); 
} 

클래스 이름과 동일한 이름을 가진 기능, 당신은 코드의 상단에 자체되고 싶어 . 다른 모든 기능은 공개 및 비공개 키워드를 삭제하기 만하면됩니다. 당신은 단지 코드가 아닌 파일이 가정 (및 사용 : 당신이 (선한) 실제 클래스 파일에 해당 코드를 사용하려는 경우 지금


, 다음을 수행 할 것 애니메이션/FlashPro를 IDE로 사용).

AnimateCC에서 파일 -> 새로 만들기로 이동하여 ActionScript 3.0 클래스를 선택하십시오. 코드에 표시되는 것과 일치하는 클래스 이름을 지정하십시오.

코드를 붙여 넣으십시오.

코드가 package {으로 시작한다고 가정하고 .fla와 같은 디렉토리에 파일을 저장하십시오. 코드가 package com.mystuff과 같이 시작되면 com이라는 다른 폴더에있는 mystuff이라는 하위 폴더에 파일이 저장되어야합니다.이 폴더는 .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 
    } 
}