2013-02-15 58 views
1

從Adobe的documentation使用mxmlc(Flex編譯器)會忽略XML CONFIGS「定義」

To set the value of these constants in the flex-config.xml file, rather than on the command line, you write this as the following example shows:

<compiler> 
    <define append="true"> 
     <name>CONFIG::debugging</name> 
     <value>true</value> 
    </define> 
    <define append="true"> 
     <name>CONFIG::release</name> 
     <value>false</value> 
    </define> 
</compiler> 

的問題是,編譯器實際上並不考慮這些,給我像「錯誤編譯錯誤:訪問未定義的屬性調試。「因爲我在我的ActionScript代碼中有這個。

如果我通過參數(「-define + = CONFIG :: debugging,true」)來定義它們,一切正常。

我想也許我的配置根本沒有使用,所以我格式不正確 - mxmlc指出。所以config實際上被加載到編譯器中。

任何提示?謝謝。

回答

0

所以這是XML問題 - 因爲我實際上有字符串,而不是布爾值,在配置中 - 你不應該忘記寫正確的XML(奇怪的是編譯器沒有說我回來了)。

<value>&quot;MyStringValue&quot;</value> 

或更容易:

<value>'MyStringValue'</value> 

和雙引號( '" MyStringValue "')是當你使用的參數。

+0

是的,我知道引用字符串的問題(在我的經驗中有相同的),但你的例子是布爾值,所以我不認爲它是一個潛在的原因) – fsbmain 2013-02-20 11:20:05

+0

並給我自己的一個說明:張貼實際的東西,做不過分簡化=) – 2013-02-20 12:04:12

2

我使用相同的方法通過加載自定義配置傳遞DEFINE參數,所有工作正常。我沒有看到你提供的配置部分的錯誤。

下面是配置和使用mxmlc則params的my variant

 
-load-config tools/config-local.xml -dump-config=local-dumped-config.xml. 

還要檢查轉儲配置以納入確信定義。

+0

在傾倒配置沒有限定,但這些線(確切地,從那裏複製的): $ {flexlib}/$ {配置名稱} -config.xml /用戶/ fljot /Development/Projects/BirdsWheel/build/metsaylem-config.xml 2013-02-15 08:06:40

+0

我只能建議你在演示項目上測試,一切都應該可以工作。對於你的問題應該有一個簡單的解決方案,但是很難從遠程找到它。 – fsbmain 2013-02-15 08:41:44

+0

你可以發佈你的轉儲配置的相應部分嗎? – 2013-02-15 08:52:28