Что означает двойное двоеточие ('::') в Actionscript 3 / Flex? - PullRequest
3 голосов
/ 05 января 2011

Мне поручено обновить проект Flex, созданный сторонним подрядчиком, и в ActionScript есть следующий фрагмент:

CONFIG::FLASH_10_1
{
    //Some code here
}

Я никогда раньше не видел такого типа структур, и у меня было огромное количество времени, пытаясь найти его в Google - я нашел, что это значит почти на каждом языке программирования, кроме AS3. Кто-нибудь может пролить свет на это?

Ответы [ 3 ]

7 голосов
/ 05 января 2011

Я почти уверен, что это относится к функциям компиляции условных компиляторов .

Итак, если вы добавите аргумент компилятора, например:

-define=CONFIG::FLASH_10_1

Могу поспорить, что ошибка исчезнет.

4 голосов
/ 04 декабря 2013

Хотя это не тот же контекст, чтобы ответить на вопрос, что означает двойное двоеточие "::" в AS3 ...

Это средство доступа к пространству имен.

Например,тип AS3 Vector.<T> на самом деле имеет имя типа среды выполнения __AS3__.vec::Vector.<T>, где __AS3__.vec - это пользовательское пространство имен.Вы также можете использовать пользовательские пространства имен для членов и обращаться к ним на объектах в AS3, используя синтаксис object.custom_namespace::membername.public и private встроены в пространства имен, поэтому технически вы можете получить доступ к открытым членам, таким как object.public::membername, например:

var a:Array = [0,1];
trace(a.public::length); //prints 2
2 голосов
/ 05 января 2011

Не гуру flex / AS3 - этот поток говорит о том, что «::» используется в качестве «средства доступа к пространству имен»:

Тема о часто задаваемых вопросах ActionScript

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...