我想知道如何将参数传递给链接到按钮的外部actionscript文件中的函数。在上面的代码中,当我单击按钮时,我收到以下错误。我认为我将值传递给函数的方式存在问题。请帮助。
ArgumentError: Error #1063: Argument count mismatch on Node(). Expected 1, got 0.
at flash.display::Sprite/constructChildren()
at flash.display::Sprite()
at flash.display::MovieClip()
package
{
import flash.display.MovieClip;
import flash.events.*;
import flash.display.SimpleButton;
public class Node extends SimpleButton
{
public var left:Node; // left child
public var right:Node; // right child
public var value:int = int.MAX_VALUE; // value in node
public var test:int;
public function Node(c:int):void
{
value = c;
addEventListener(MouseEvent.CLICK, AddClick);
}
public function AddClick(e:Event):void
{
Node(25);
trace(value);
}
}//class
}//package
答案 0 :(得分:0)
如果在库中创建和对象并为该对象编写类,则可以通过两种方式实例化该对象:
从库中拖动实例。您不能将参数传递给构造函数。
按new
命令创建实例。您可以将参数传递给构造函数。
如果您想要使用这两种方法实例化对象,则需要为构造函数参数设置默认值(对于方法1):
public function Node(c:int=0)
我想,你用方法1创建对象。你的错误发生在应用程序启动时,而不是按下按钮。
顺便说一下,在你的代码中你以奇怪的方式调用构造函数:)
Node(25);
- 错误,您需要var foo:Node = new Node(25);
如果您只想将值更改为25,请写
public function AddClick(e:Event):void
{
value = 25;
trace(value);
}
类Node中的所有函数和值都“存在”一个范围并可直接访问。