2012-04-19 62 views
-1

如何在2個actionscript3文件(.as)之間傳遞變量?在2個actionscript3文件(.as)之間傳遞變量

我有一個主FLA文件和3檔,一類每一個...... 我在AS2基本knownelge但沒有太多的AS3

感謝您的幫助。

+0

是這些類,或在外部文件剛剛舉行聯腳本?您將需要發佈一個更完整的問題以獲得適當的幫助。 – shanethehat 2012-04-19 13:50:55

+0

是的,他們是班級,感謝您的幫助。我修改我的問題;) – Bizboss 2012-04-19 13:54:34

+1

好吧,這是一個開始。現在,你如何實例化這些類?你想傳遞的數據來自哪裏?其中一個類是您的文檔類? – shanethehat 2012-04-19 14:01:16

回答

1

看來你試圖從Flash的任何地方訪問一些變量。一種方法是用靜態方法和變量創建一些類。例如:

package somenamespace { 

    class Registry { 

     static private var something_:String; 

     public function get something():String { 
      return something_; 
     } 


     public function set something(v:String):void { 
      if (something_ === v) return; 
      something_ = v; 
     } 

    } 

} 

然後你可以從任何地方在Flash訪問這個變量:

Registry.something = "example"; 
+0

當我的變量是在一個私人函數,我怎麼能得到它在另一個文件? – Bizboss 2012-04-19 14:34:27

+0

在這種情況下,您需要創建一個getter/setter函數。無論如何,這將是訪問變量的正確方法。 – 2012-04-19 14:54:18

+0

你有一個代碼示例如何做到這一點?這對我很有幫助:) – Bizboss 2012-04-19 15:14:16

0

在類之間傳遞數據的正確方法是通過引用傳遞它。這比使用全局範圍維護數據要好,因爲它允許您分離類。

很難給你具體的建議,沒有看到你的類,你試圖傳遞數據,但這裏是一個使用文檔類(Main.as)和子類(Child.as)一個簡單的例子:

Main.as:

package { 
    class Main extends MovieClip 
    { 
     private var someData:String; 
     //constructor 
     function Main() 
     { 
      //create the data 
      someData = "my string"; 

      //create an instance of child 
      var child:Child = new Child(someData); 
     } 
    } 
} 

Child.as:

package { 
    class Child 
    { 
     private var someData:String; 
     //constructor 
     function Child(initData:String) 
     { 
      someData = initData; 
      trace(someData); // my string 
     } 
    } 
} 

這聽起來像你的情況,你需要一個控制器類實例化你的類和管理日他們之間的關係。這將是上面Main類的變體,實例化所有三個類並提取和傳遞他們的數據。