2011-03-22 84 views
0

我有兩個ArrayUtil我需要從同一個類訪問的類 - 它們都來自外部庫並有不同的代碼,所以我不能將它們合併。如何區分在as3中具有相同名稱的兩個導入?

如何在代碼中消除歧義?

我試着做com.adobe.utils.ArrayUtil內聯,並且保留現有的導入,但是導致了undefined property com錯誤。

乾杯

回答

3
// In main class/timeline etc 

import package1.*; 
import package2.*; 

var a1:package1.A = new package1.A(); 
var a2:package2.A = new package2.A(); 

包裝1類

// In package1.A.as 
package package1 { 

    public class A { 

     public function A() { 
      // constructor code 
      trace("P1"); 
     } 

    } 

} 

包2類

// In package2.A.as 
package package2 { 

    public class A { 

     public function A() { 
      // constructor code 
      trace("P2"); 
     } 

    } 

} 

輸出

// Outputs 
P1 
P2 

如果您需要訪問靜態方法或屬性。你會做類似下面的內容:

import com.adobe.utils.ArrayUtil; 

var a:Array = ["A", "B", "C"]; 
trace(com.adobe.utils.ArrayUtil.arrayContainsValue(a, "B")); // outputs true 
+0

有沒有類似的方法來訪問靜態方法? (即'如果(!com.adobe.utils.ArrayUtil.arrayContainsValue(monthNames,「total」))') – RodeoClown 2011-03-22 21:08:54

+0

(我剛剛發佈的線是我試過的,它給了我一個錯誤) – RodeoClown 2011-03-22 21:34:37

+0

啊,我錯過了第二次進口,所以消除歧義對班級來說並不意味着什麼。謝謝! – RodeoClown 2011-03-22 21:40:53

1

這些庫的名稱是什麼?嘗試只用mx.adobe.utils.ArrayUtil作爲第一個類的引用。

你可以最有可能使用的包名直接引用他們(即com.domandtom.MyUtils(打開它,你會看到它在類文件的頂部)定義。

+0

我嘗試這樣做,我只是得到一個錯誤說「未定義的屬性COM」(我想引用'com.adobe.utils.ArrayUtil.arrayContainsValue() ') – RodeoClown 2011-03-22 21:08:15

+0

我不知道你的文件夾結構是什麼。在你的包「com」文件夾中,你有com.adobe庫嗎?看起來你有幫助,雖然 – 2011-03-23 19:05:24

+0

感謝多米尼克。原來我錯過了進口。 – RodeoClown 2011-03-23 23:27:20

相關問題