2009-04-23 5 views
2

Actionscript에 정의 된 사용자 정의 클래스가 있으며이 인스턴스를 Flash 응용 프로그램의 기본 문서에서 만들고 싶습니다. 이건 내 클래스입니다생성자 인수 문제 ActionScript 3

Error #1063: Argument count mismatch on coa.application::MenuItem(). Expected 1, got 0. 

: 그러나, 하나 개의 인자로 생성자를 호출 한 후, 플래시 나에게이 오류 제공

public class MenuItem extends MovieClip{ 
    var button:SimpleButton; 

    public function MenuItem(buttonLoc:uint) { 

     button = new InvBtn(); 
     this.addChild(button); 
     button.x=-81; 
     button.y=buttonLoc*33; 
     button.addEventListener(MouseEvent.CLICK, mybringToFront); 
    } 
} 

을 그리고 이것은 생성자 호출 할 내 시도 :

var menu1:MovieClip = new MenuItem(3); 

어떤 아이디어일까요?

+0

MenuItem을 MovieClip으로 다운 캐스팅하지 않은 경우에는 다음을 시도하십시오. var menu1 : MenuItem = new MenuItem (3); – Soviut

답변

3

죄송합니다. 아직 사과하실 수 없으며, 덧글을 달아주세요.

var에 MENU1 :

당신이 있는지 있습니까 무비 클립 =이없는 새로운 MenuItem (3);

은 새 MenuItem을 구성하는 유일한 곳입니까? 혹시 스테이지의 일부 인스턴스에 MenuItem 클래스가 연결되지 않았습니까?

나는이에 코드를 변경 (단지 그래서 그것을 실행할 수)와 그것을 잘 작동합니다 : quoo처럼

package{ 
    import flash.display.MovieClip; 
    import flash.display.SimpleButton; 
    import flash.events.MouseEvent; 
    public class MenuItem extends MovieClip{ 

      var button:SimpleButton; 

      public function MenuItem(buttonLoc:uint) { 

        button = new SimpleButton(); 
        this.addChild(button); 
        button.x=-81; 
        button.y=buttonLoc*33; 
        button.addEventListener(MouseEvent.CLICK, mybringToFront); 
      } 

      public function mybringToFront(event:MouseEvent):void{ 
       trace('blah'); 
      } 
    } 
} 
+0

oops, 네, 맞아요, 무대에 그 심볼의 인스턴스가 있었지만, 이것을 읽을 때까지는 깨닫지 못했습니다;) thanxalot – Dungeo

1

당신이 클래스에 부착되어있는 객체의 인스턴스를 가질 가능성이 가장 높은 말했다 단계. 이를 테스트하려면 다음을 수행하십시오.


public class MenuItem extends MovieClip{ 
     var button:SimpleButton; 

     // I changed it to int, cuz uint is extremely slow for any math 
     // other than bitwise operators, int is fast as long as no fractions 
     public function MenuItem(buttonLoc:int = -1) { 
       if (buttonLoc == -1) 
        trace("On stage instance found! Location: "+x+", "+y); 

       button = new InvBtn(); 
       this.addChild(button); 
       button.x=-81; 
       button.y=buttonLoc*33; 
       button.addEventListener(MouseEvent.CLICK, mybringToFront); 
     } 
}