0

我试着做发现的ActionScript:变量未从另一个类的功能

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

没有工作..任何想法,从classname.as获得变量,这是一个函数里面? 顺便说一句我试着使功能静态,仍然没有工作 任何想法?

+0

请提供更多的代码访问它。要访问类之外的变量,您需要将它们设置为公共属性。我怀疑你想访问函数体内部的变量,因为它们在函数调用之前不会存在。 – 2013-04-06 13:54:42

回答

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); 
    ... 
} 
+0

我认为这是一个简单的方法..无论如何谢谢:)我会用艰难的方式:P – 2013-04-06 14:46:47

0

在函数内创建的变量只能在该函数的范围内使用。 如果变量是类成员变量(在类上声明为public);

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

,你将能够访问他们作为

classInstanceRef.varName 

不用说,你需要从该类的实例来实例化。

除非你的变量声明为static的类

public static varName:String=""; 

,并在这种情况下,你可以使用

className.varName; 
+0

你的意思是与ClassInstanceRef – 2013-04-07 21:42:12