2009-04-23 6 views
2

私はActionscriptで定義されたカスタムクラスを持っていて、そのインスタンスをFlashアプリケーションのメインドキュメントで作成したいと考えています。しかし、一つの引数でコンストラクタを呼び出した後、フラッシュは私に、このエラーを与える:コンストラクタ引数の問題ActionScript 3

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

そして、これはそのコンストラクタを呼び出すための私の試みです:

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

これは私のクラスである

var menu1:MovieClip = new MenuItem(3); 

何か、何が間違っていますか?

+0

これは意味がありません。 – Soviut

答えて

3

謝罪、私はまだコメントできません、または私はこれをコメントに入れます。

のvar MENU1:

あなたは確認していますのMovieClip =新しいMenuItemの(3);

は、新しいMenuItemを構築する唯一の場所ですか?ステージ上のいくつかのインスタンスにMenuItemクラスがアタッチされていることはありませんか?

私はこれにあなたのコードを変更する(だけので、私はそれを実行することができ)、それが正常に動作します:

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

おっと、はい、そうです、そのシンボルのインスタンスがステージ上にありましたが、これを読んでいないうちにそれを認識しませんでした;)thanxalot – Dungeo

1

quooが最も可能性が高いあなたはクラスが上に接続されていることをオブジェクトのインスタンスを持って、言ったようにステージ。これをテストするには:


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