Apache flex 在ActionScript3/Flex中,双冒号(';:';)是什么意思?

Apache flex 在ActionScript3/Flex中,双冒号(';:';)是什么意思?,apache-flex,actionscript-3,Apache Flex,Actionscript 3,我的任务是更新由外部承包商创建的Flex项目,Actionscript中包含以下内容: CONFIG::FLASH_10_1 { //Some code here } 我以前从未见过这种类型的结构,我花了很长时间试图在谷歌上搜索它——我已经在几乎所有编程语言中找到了它的含义,除了AS3。有人能解释一下吗?我很确定这与Flex编译器的特性有关 因此,如果添加编译器参数,如下所示: -define=CONFIG::FLASH_10_1 我打赌这个错误会消失。不是flex/AS3大师-这个

我的任务是更新由外部承包商创建的Flex项目,Actionscript中包含以下内容:

CONFIG::FLASH_10_1
{
    //Some code here
}

我以前从未见过这种类型的结构,我花了很长时间试图在谷歌上搜索它——我已经在几乎所有编程语言中找到了它的含义,除了AS3。有人能解释一下吗?

我很确定这与Flex编译器的特性有关

因此,如果添加编译器参数,如下所示:

-define=CONFIG::FLASH_10_1

我打赌这个错误会消失。

不是flex/AS3大师-这个线程讨论了“::”被用作“名称空间访问器”:


虽然这与上下文不同,但要回答什么是双冒号的问题:“在AS3中的意思是

它是一个名称空间访问器

例如,AS3
Vector.
类型实际上有一个运行时类型名
\uuuuu AS3\uuuuuu.vec::Vector.
,其中
\uuuuuu AS3\uuuuu.vec
是自定义名称空间。您还可以为成员使用自定义名称空间,并使用语法
object.custom\u namespace::membername
在AS3中的对象上访问它们
public
private
内置于名称空间中,因此从技术上讲,您可以访问公共成员,如
object.public::membername
,如下所示:

var a:Array = [0,1];
trace(a.public::length); //prints 2

我可能应该补充一点,目前项目在这一行抛出了一个错误:“1120:Access of undefined property FLASH_10_1”,就是这样!感谢Flextras提供的答案和信息链接。实际上,我最后添加了-define=CONFIG:FLASH_10_1,true指定这是一个10.1需求。很高兴提供帮助!请明确,如果您希望您的应用程序针对特定版本的Flash Player,我不相信条件编译可以做到这一点。您需要使用targetplayer命令行参数。感谢您的回答,但不幸的是,这适用于e4x和XML,而不是我正在寻找的结构。对不起,希望它能更有用一点。我想我会进行一次搜索,看看我是否能找到什么,但希望Flextras解决了你的问题。我很确定这也适用于AS3。例如,AS3
Vector.
类型实际上有一个运行时类型名
\uuuuu AS3\uuuuuu.vec::Vector.
,其中
\uuuuuu AS3\uuuuu.vec
是自定义名称空间。您还可以为成员使用自定义名称空间,并使用语法
object.custom\u namespace::membername
在AS3中的对象上访问它们
public
private
是内置于名称空间中的,因此从技术上讲,您可以像下面这样访问公共成员
object.public::membername
,如
var a:Array=[0,1];跟踪(a.public::length)//打印2张