Actionscript 3 构造函数参数问题ActionScript 3
我在Actionscript中定义了一个自定义类,我想在Flash应用程序的主文档中创建一个实例。但是,在使用一个参数调用构造函数后,Flash给了我以下错误:Actionscript 3 构造函数参数问题ActionScript 3,actionscript-3,constructor,arguments,Actionscript 3,Constructor,Arguments,我在Actionscript中定义了一个自定义类,我想在Flash应用程序的主文档中创建一个实例。但是,在使用一个参数调用构造函数后,Flash给了我以下错误: Error #1063: Argument count mismatch on coa.application::MenuItem(). Expected 1, got 0. 这是我的班级: public class MenuItem extends MovieClip{ var button:SimpleButton;
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);
有什么想法吗?有什么问题吗?抱歉,我现在还不能发表评论,否则我会把这个放在评论里 你确定: 变量菜单1:MovieClip=新菜单项(3) 是唯一一个你正在构建新菜单项的地方吗?您没有将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');
}
}
}
就像quoo所说的,您很可能有一个类在stage上附加到的对象的实例。要测试是否存在此问题,请执行以下操作:
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);
}
}
将MenuItem降级回MovieClip没有意义,请尝试:var menu1:MenuItem=new MenuItem(3);哦,是的,你是对的,舞台上有一个符号的例子,但直到读到这篇文章我才意识到;)桑克洛特