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 调用函数
ActionScript 3 AS3 - 如何从另一个类访问文档类
在 ActionScript 3.0 中,您可以对一个类使用 addEventListener 来响应另一个类的函数调用吗?