2013-03-29 5 views
0

확실하지는 않지만 내 문제가 내 변수를 선언하는 방법과 관련이 있다고 생각합니다.AS3 - 유형 및 클래스

아래 코드는 AS3에서 유효합니까?

var fish1:Fish = new Fish; 
    var fish2:Fish = new Fish; 
    var fish3:Fish = new Fish; 
    var fish4:Fish = new Fish; 
    addChild(fish1); 
    addChild(fish2); 
    addChild(fish3); 
    addChild(fish4); 
    fish1.x = 0; 
    fish2.x = 150; 
    fish3.x = 300; 
    fish4.x = 450; 

내가 말을하는 AddChild의 각 라인에 대한 컴파일러 오류를 받고 있어요 :

Main.as

, 라인 (14) 1180 : 정의되지 않은 방법하는 AddChild에 호출합니다. Main.as, Line 14 1120 : 정의되지 않은 속성 fish3에 대한 액세스. 정의되지 않은 속성의 fish4의 액세스 :

와 내가

Main.as, 라인 15 (1120)라는 컴파일러 오류를 지고있어 내 물고기의 x 좌표를 지정하고있어 모든 라인

.

물고기 변수는 물고기 유형이며 내 라이브러리에서 내 .fla 파일로 정의했습니다. 진보 된 감사합니다!

+0

물고기는 어떤 등급을 연장합니까? x 속성은 public입니까? – mfa

+0

MovieClip 나는 믿는다 –

답변

1

귀하의 클래스는 DisplayObjectContainer의 일부 형식을 서브 클래스 화해야하며 그 중 MovieClip과 Sprite는 두 가지 가능한 선택 항목입니다 (알아보십시오.).

하지만 진짜 probem이 타임 라인 코드처럼 클래스 코드를 작성하고 있다고 생각됩니다. 아마 엄격한 모드를 벗어난 것 같아요. 그렇기 때문에 AS3에 익숙한 사람이라면 도움이되는 컴파일 타임 오류가 발생하여 코드가 더 비슷하게 보일 것이라고 즉시 알 수 있습니다.

 
    class Main extends Sprite { 
     public var fish1:Fish = new Fish(); 
     public var fish2:Fish = new Fish(); 
     public var fish1:Fish = new Fish(); 
     public function Main() { 
      addChild(fish1); 
      addChild(fish2); 
      addChild(fish3); 
      //not going to type this crap. 
      //positioning code (and addChild) is a waste of time. 
      //that's what the stage is for! 
     } 
    } 
+0

그것은 일했다! 내 범위에 문제가 있다는 것을 알게되었습니다. 변수를 선언하고 addchild와 x를 Main 클래스 밖에서 모두 Main 클래스와 함께 호출했습니다. 도와 주셔서 감사합니다! –