2011-03-11 153 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; 
     } 
    } 
} 

這是否適用於你的代碼?