2011-01-05 110 views
3

我與更新由外部承包商,並在ActionScript中創建Flex項目負責如下塊:Actionscript 3/Flex中的雙冒號('::')是什麼意思?

CONFIG::FLASH_10_1 
{ 
    //Some code here 
} 

我從來沒有見過這種類型的結構之前,我有赫克一段時間試圖在Google上搜索它 - 我發現除了AS3之外,幾乎所有的編程語言都意味着它的含義。任何人都可以對此有所瞭解嗎?

+0

我也許應該補充,目前該項目在這條線,上面寫着拋出一個錯誤:「1120:訪問未定義的屬性FLASH_10_1「 – TheOx 2011-01-05 19:01:24

回答

7

我敢肯定這與Flex編譯器的conditional compilation功能有關。

所以,如果你添加一個編譯器參數,如:

-define=CONFIG::FLASH_10_1 

我敢打賭,錯誤就會消失。

+0

就是這樣!感謝每一位Flextras的答覆和信息鏈接。實際上,我最終添加了-define = CONFIG:FLASH_10_1,true表示這是10.1的要求。 – TheOx 2011-01-05 19:19:52

+0

很高興幫助!要明確一點,如果你希望你的應用程序定位到特定版本的Flash Player,我不認爲有條件編譯會這樣做。您需要使用target-player命令行參數。 http://livedocs.adobe.com/flex/3/html/help.html?content=compilers_14.html – JeffryHouser 2011-01-05 20:18:20

1

不是的Flex/AS3大師 - 關於「::」這個線程會談被用作「命名空間訪問」:

Thread on Actionscript FAQs

+0

感謝您的答案,但不幸的是,這適用於e4x和XML,而不是我正在尋找的構造。 – TheOx 2011-01-05 19:20:20

+0

對不起 - 希望它更有幫助。我想我會搜索一下,看看我能否想出任何東西 - 但希望Flextras解決了你的問題。 – 2011-01-05 19:21:35

+0

我很確定這也適用於AS3。例如,AS3'Vector。 'type實際上有一個運行時類型名稱爲__AS3 __。vec :: Vector。 ',其中'__AS3 __。vec'是自定義命名空間。您還可以爲成員使用自定義名稱空間,並使用語法object.custom_namespace :: membername在AS3中的對象上訪問它們。 'public'和'private'是建立在命名空間中的,所以在技術上你可以像'var a:Array = [0,1];這樣訪問像'object.public :: membername'這樣的公共成員。跡(a.public ::長度); //打印2' – Triynko 2013-12-04 19:39:06

3

雖然這是不一樣的情況下,回答這個問題雙冒號「::」在AS3中的含義......

它是一個名稱空間訪問器。

例如,AS3 Vector.<T>類型實際上具有運行時類型名稱__AS3__.vec::Vector.<T>,其中__AS3__.vec是自定義名稱空間。您還可以爲成員使用自定義名稱空間,並使用語法object.custom_namespace::membername在AS3中的對象上訪問它們。 publicprivate是建立在命名空間,所以在技術上你可以訪問公共成員一樣object.public::membername,如:

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