2009-04-23 123 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

毫無意義向下轉換菜單項回到影片剪輯,請嘗試:VAR菜單1:菜單項=新菜單項(3); – Soviut 2009-04-23 15:27:33

回答

3

道歉,我還不能評論,或者我會在評論中。

你肯定:

VAR菜單1:影片剪輯=新菜單項(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 2009-04-23 19:40:37

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