2014-09-02 45 views
0

我正在使用包含某些變量的「include」方法直接在外部AS文件中加載主時間軸IDE,並在AS文件中調用另一個類,例如; 「vars.as」 的AS3從外部訪問變量包含ActionScript文件.AS不是類

include "vars.as" 

內容: 「FOO.as」 的

var test:* = "test?!"; 

var foo:FOO = new FOO(); 
addChild(foo); 

內容:

package { 

    import flash.display.*; 

    public class FOO extends MovieClip { 

     public function FOO() { 

      trace("test= "+test); 
     } 
    } 
} 

誤差; 1120:訪問未定義的屬性測試。

如何從「foo」類訪問「vars.as」中的「test」變量,這是可能的嗎?

回答

0

好吧,我找到了一個解決方案,希望這可以幫助別人。

這是你應該如何從主時間線調用它;

var foo:FOO = new FOO(this, stage); 
addChild(foo); 

,這裏是更新的Foo類:

package { 

    import flash.display.*; 

    public class FOO extends MovieClip { 

     var _stage:Stage; 
     var _root:*; 

     public function FOO(root:*, stage:Stage){ 
      this._stage = stage; 
      this._root = root; 
      trace(this._root.test); 
     } 
    } 
} 
+0

但我不會推薦使用這種方法,導致問題,所以我只是移動並將所有代碼轉換爲AS3文檔類。管理代碼更容易 – sputn1k 2014-09-16 10:49:18

0

在編譯過程中包含的actionscript文件被視爲它們在您包含它們的動作的主體中是正確的。您可以像在相同的地方定義它們那樣正常訪問它們。

trace(test); //測試

+0

不工作,我希望它是那麼簡單,「1120:未定義的屬性測試的訪問」 - 我需要從Foo(這是一個擴展爲MovieClip的類)調用「trace(test)」。 – sputn1k 2014-09-02 21:45:43