0

我想知道如何将参数传递给链接到按钮的外部动作脚本文件中的函数。在上面的代码中,当我单击按钮时,出现以下错误。我认为我将值传递给函数的方式存在问题。请帮忙。

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
4

1 回答 1

0

如果您在库中创建对象并为该对象编写类,则可以通过两种方式实例化该对象:

  1. 从库中拖动实例。您不能将参数传递给构造函数。

  2. 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 类中的所有函数和值都“存在”在一个范围内并且可以直接访问。

于 2013-03-01T09:06:52.543 回答