Actionscript:从另一个类的函数中找不到变量

Posted

技术标签:

【中文标题】Actionscript:从另一个类的函数中找不到变量【英文标题】:Actionscript : Variable not found from another class' function 【发布时间】:2013-03-28 22:01:38 【问题描述】:

我试过了

trace(classname.functionname.variablename);
//or
trace(classname.functionname().variablename);

没有工作..任何想法,从 classname.as 变量中获取,它在函数内部? 顺便说一句,我尝试将功能设为静态,但仍然无法正常工作 有什么想法吗?

【问题讨论】:

请提供更多代码。要访问类之外的变量,您需要将它们设为公共属性。我怀疑您想访问函数体内的变量,这是不可行的,因为在调用函数之前它们不会存在。 【参考方案1】:

没有办法,因为那些在函数内部定义的变量只有在函数执行时才存在,一旦出现return 或函数体的结尾就会消失。为了从函数中获取您想要的任何值,请在函数外部创建一个类变量,在该函数中为其分配您想要的值,然后从其他地方对其进行寻址。

class test 
public static var foo:Number;
function bar():void 
    // ... some code
    foo=baz*2.54;
    // ... more code


class elsewhere 
    ...
    trace(test.foo);
    ...

【讨论】:

我认为这是一个简单的方法.. 无论如何谢谢 :) 我会用困难的方法做到这一点:P【参考方案2】:

在函数内部创建的变量仅在该函数的范围内可用。 如果变量是类成员变量(在类上声明为公共);

public class x 
 public var varName:String="";

您将能够以

的身份访问它们
classInstanceRef.varName

不用说,您需要从该类实例化一个实例。

除非你的变量在类上声明为静态

public static varName:String="";

在这种情况下,您可以使用

className.varName;

【讨论】:

ClassInstanceRef 是什么意思

以上是关于Actionscript:从另一个类的函数中找不到变量的主要内容,如果未能解决你的问题,请参考以下文章

indexOf 在actionscript 3中找不到数组上的变量

Actionscript 3 从另一个/根 SWF 调用函数

在自定义 Java AWS 应用程序中找不到类的序列化程序

ActionScript 3 AS3 - 如何从另一个类访问文档类

在 ActionScript 3.0 中,您可以对一个类使用 addEventListener 来响应另一个类的函数调用吗?

将数组从另一个类的构造函数传递给类函数