将参数值传递给actionscript 3.0中外部脚本文件中的函数

时间:2013-03-01 08:35:56

标签: flash actionscript

我想知道如何将参数传递给链接到按钮的外部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

1 个答案:

答案 0 :(得分:0)

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

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

  2. new命令创建实例。您可以将参数传递给构造函数。

  3. 如果您想要使用这两种方法实例化对象,则需要为构造函数参数设置默认值(对于方法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中的所有函数和值都“存在”一个范围并可直接访问。