2009-04-23 124 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); 
     } 
}