Как отличить два импорта с одинаковыми именами в as3?
У меня два ArrayUtil
классы, к которым мне нужен доступ из одного и того же класса - каждый из них поступает из внешних библиотек и имеет разный код, поэтому я не могу просто объединить их.
Как мне устранить их неоднозначность в коде?
Я пытался делать com.adobe.utils.ArrayUtil
встроенный, и оставляя существующий импорт, но это привело к undefined property com
ошибка.
ура
2 ответа
// 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
Как называются библиотеки? Попробуйте просто mx.adobe.utils.ArrayUtil для ссылки на первый класс.
Скорее всего, вы можете использовать имена пакетов для прямой ссылки на них (например, com.domandtom.MyUtils (откройте его, и вы увидите, что он определен в верхней части файла класса).