在一个小项目中,我创建了一个函数来调用另一个函数。
import flash.events.Event;
var yspeed:Number=0;
var maxspeed:Number=5;
var accel:Number=.1;
stage.addEventListener(Event.ENTER_FRAME, code);
function code(codeevent:Event){
if(sprite1.y>449){
code2();
}
}
function code2(code2event:Event):void{
if(yspeed<5){
yspeed+=.5
yspeed-=accel
}
if(yspeed>5){
yspeed=5
}
sprite1.y-=yspeed;
trace(yspeed)
}
我收到错误:Line 9 1136: Incorrect number of arguments. Expected 1.
在第九行,只有code2();
注意,我已经尝试过了
code2(Event);
code2(code2event:Event);
code2(code2event);
所有人都会遇到不同的错误。
我还尝试更改函数的名称,并在调用后添加:void
。
目前,在320x480
的舞台上,sprite1的位置为x = 182且y = 482我对为何发生这种情况一无所知。
答案 0 :(得分:3)
当您使用不定义默认值的参数定义函数时,它们是必需的(您必须在调用函数时为这些参数提供值)。您可以通过定义默认值null
来解决您的问题:
function code2(code2event:Event = null) {
// ...
}
或者在调用函数时明确提供null
:
code2(null);
至于你的尝试:
code2(Event)
- 您在此处传递对类Event
的引用,而不是Event类的实例。code2(code2event:Event)
- 这种语法是完全错误的,您只在声明变量,参数等时注释(添加:Type
),而不是在提供值时。code2(code2event)
- 如果您的代码中有Event
个实例分配给名为code2event
的变量,那么这将是有效的。所有这一切,看起来你的code2()
函数实际上不需要提供给它的事件,我假设你只是模仿了上面的函数code()
中的那部分。您可以完全省略它,只需:
function code2():void {
// ...
}