Как отличить два импорта с одинаковыми именами в 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 (откройте его, и вы увидите, что он определен в верхней части файла класса).

Другие вопросы по тегам