Actionscript访问全局/类变量

时间:2013-12-02 07:12:24

标签: actionscript-3 flash

这是我的代码:

package
{
import flash.display.Sprite;

public class MyClass extends Sprite
{
    private var abc:String = "123";
    public function MyClass()
    {

    }

    public function myfunc():void
    {
        dispatch("456");
    }

    private function dispatch(abc:String):void
    {
        trace(abc);
    }
}
}

调用myfunc()函数时,跟踪将返回456。如何让它访问全局变量?

谢谢。

2 个答案:

答案 0 :(得分:4)

使用this keyword

private function dispatch(abc:String):void
    {
       trace( this.abc );
    }

答案 1 :(得分:1)

首先,private var abc:String = "123";不是全局变量。它是类的私有成员变量。它的范围是全班。在具有相同名称的成员方法中添加参数时,该参数在该方法中具有本地范围,并且该本地参数变量隐藏了同名的类成员。

private function dispatch(abc:String):void {
    // here abc has local scope and it hides the class member abc
}

您有两种方法可以解决此问题:

  1. 只需为参数使用其他名称即可。例如,private function dispatch(ab:String):void。现在ab是局部变量,abc是类成员变量。
  2. 如果必须对参数使用相同的名称,请使用this.abc访问类成员。