Как отличить два импорта с одинаковыми именами в as3? - PullRequest
0 голосов
/ 22 марта 2011

У меня есть два ArrayUtil класса, к которым мне нужен доступ из одного и того же класса - каждый из них поступает из внешних библиотек и имеет разный код, поэтому я не могу просто объединить их.

Как мне устранить их неоднозначность в коде?

Я попытался сделать com.adobe.utils.ArrayUtil встроенным и оставить существующий импорт, но это привело к ошибке undefined property com.

Приветствия

Ответы [ 2 ]

3 голосов
/ 22 марта 2011
// 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
1 голос
/ 22 марта 2011

Как называются библиотеки? Попробуйте просто mx.adobe.utils.ArrayUtil для ссылки на первый класс.

Скорее всего, вы можете использовать имена пакетов для прямой ссылки на них (например, com.domandtom.MyUtils (откройте его, и вы увидите, что оно определено в верхней части файла класса).

...