2011-08-18 56 views
0

假設我必須爲不同的站點編譯兩個不同版本的.swf。區別在於ajax和重定向的主機名,在代碼和圖形中添加到.swc項目中的一些小調整。我可以輕鬆切換不同的swcs,但代碼調整很難輕鬆管理。我有找不到如何正確使用CONFIG ::指令

CONFIG::site1 
{ 
    private var _domainName:String = "site1.com"; 
} 

CONFIG::site2 
{ 
    private var _domainName:String = "site2.com"; 
} 

FB帶來了一個錯誤:1151:衝突與定義_domainName存在於命名空間內。
我需要什麼是用C smthn這樣的:

#ifdef SITE1 
char hostname[] = "site1"; 
#endif 

#ifdef SITE2 
char hostname[] = "site2"; 
#endif 

有沒有辦法使用編譯方式使用mxmlc的指令?

P.S.一切正常現在

+2

實際上應該工作: -define + = CONFIG :: site1的,真正的-define + = CONFIG :: site2,false –

+0

我已關閉並重新打開FB並開始工作!儘管如此,非常感謝! – Nanako

回答

3

我認爲this documentation將幫助你。

在你的情況下,類似如下:

private var _domainName:String = NAMES::site; 

而且mxmlc的論點看起來像:

-define+=NAMES::site,"'site1.com'" 
+0

這就是我在發佈之前閱讀過的內容。 _和在C或C++中使用#IFDEF預處理器命令的方式大致相同。您不能使用常量布爾值來條件化元數據或導入語句._無關變量聲明。 – Nanako

+0

這看起來不錯,謝謝,但條件編譯呢?它看起來像mxmlc像通用代碼一樣對待CONFIG塊,而不是單獨處理。有沒有已知的方法可以繞過? – Nanako

+0

@Nanako文檔標題爲「使用條件編譯」:)文檔中的第一個代碼片段包含該示例:) – Constantiner

0

爲什麼要編碼域呢? 不是指令或者具體的回答你的問題,我只是說大聲笑

如果不能兼顧等於真正
private var _domainName:String; 

var lc:LocalConnection = new Local 
this._domainName= lc.domain;