【问题标题】:Actionscript access global / class variableActionscript 访问全局/类变量
【发布时间】:2016-01-30 00:46:54
【问题描述】:

这是我的代码:

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。如何让它访问全局变量?

谢谢。

【问题讨论】:

  • 首先为什么要为参数变量和全局变量使用相同的名称?

标签: actionscript-3 flash


【解决方案1】:

使用this keyword:

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

【讨论】:

    【解决方案2】:

    首先,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 访问类成员。

    【讨论】:

      猜你喜欢
      • 2011-10-29
      • 1970-01-01
      • 1970-01-01
      • 2012-10-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多