2011-03-11 155 views
4

我需要在另一个类中发生事件后,在文档类中的函数中增加一个整数变量。我似乎无法弄清楚如何调用该函数并引用该变量。引用另一个类的文档类中的变量

as3新手请帮忙!

+0

请提供一些示例代码 – schellmax 2011-03-11 16:20:35

+0

很多这个问题的答案建议使用公共静态属性/方法来访问文档类的成员。与此相关的问题是,虽然它允许DocumentClass的成员全局访问,但潜在的安全问题在于它可以在全球范围内访问。将文档类的引用解析为其他类可能是一个更好的主意,因此访问只受上述类限制。然后再次介绍“紧耦合”的新问题。 – Taurayi 2011-03-11 17:27:48

+0

如果我正确地阅读这个问题,事件调度可能会是一种避免Singleton的方法。 – 2011-03-11 18:18:13

回答

3

适当的范围需要到位和正确的包装。

声明一个静态变量来处理到主文档的访问权限类

private static var _instance:Main; 
public static function get instance():Main { return _instance; } 

public function Main() { // constructor 
    _instance = this; 
} 

声明一些getter和setter在主文档类

private var _foo:int = 0; 

public function get foo():int{ 
    return _foo; 
} 

public function set foo(value:int):void { 
    _foo= value; 
} 

然后在任何类您可以根据需要更改为如下内容

public class O { 
    public function O() { 
     Main.instance.set(Main.instance.get() + 1); 
    } 
} 
+1

感谢您提供有用的信息和示例代码。 – IneedHelp 2012-01-09 16:34:29

1

简单的例子,在文档类中定义一个变量“测试”:

package { 
    public class DocumentClass extends Sprite { 
     public static var test:Number = 3;  
     public function DocumentClass() { 
      test = 4; 
     }    
    } 
} 

现在访问“测试”变量在另一个类:

package { 
    public class OtherClass extends Sprite { 
     public function OtherClass() {   
      DocumentClass.test = 5; 
     } 
    } 
} 

这是否适用于你的代码?