2011-06-08 51 views
6

我試圖通過complie我mxmlc的項目是這樣的:mxmlc的嵌入資產

[prj_folder]\src>mxmlc mymxml.mxml -library-path+=../libs -sp+=..\assets 

,我得到這樣的錯誤:

[prj_folder]\src\view\controls\controlname.mxml(7): Error: Problem finding external st 
ylesheet: assets/cssname.css 
     <fx:Style source="assets/cssname.css"/> 

[prj_folder]\src\view\constants\Images.as(24): col: 3: Error: Unable to transcode assets/ icons/icon1.png.

如何包括編譯器的資產?

回答

0

這是一個目錄設置問題;不是編譯器錯誤。而且你實際上並沒有嵌入資產;只是參考它們。

使用Flash Builder時,文件「assets/cssname.css」應該與主應用程序文件相關。我相信如果你使用命令行編譯器,應該會發生同樣的情況。

您的源目錄是否有資產子目錄?裏面是cssname.css文件嗎?

+0

資產目錄位於源文件夾(.- src文件夾,../assets,../libs - 源文件包外的文件夾)之外。我aloso試圖將資產移動到src,但它會產生相同的錯誤。關於「這是一個目錄設置問題;不是編譯器錯誤。」什麼是「目錄設置問題」? Flash Builder是否使用mxmlc?所以,我的問題是「如何將參數傳遞給mxmlc來編譯swf?」 – 2xMax 2011-06-08 13:53:20

+0

@ 2xMax我相信你有你的目錄在錯誤的位置。這就是我所說的「目錄設置問題」。我不認爲您可以將資源目錄存儲在源文件夾之外。您想從Flex代碼中引用的資源應該與主應用程序文件相關;不在上面。這就像在web根目錄外放置圖像並詢問爲什麼它不會加載到網頁中。 – JeffryHouser 2011-06-08 14:24:42

+0

肉體生成器符合我的項目。因此,資產可以位於項目之外。附:我還在上面寫了「我嘗試將資產移動到src」。 – 2xMax 2011-06-09 21:41:36

6

Flash Builder預處理文件。

對於目錄結構是這樣的:

projectdir/src/Main.mxml 
projectdir/src/views/SomeView.mxml 
projectdir/src/assets/MyImage.png 

如果SomeView.mxml引用資產/ MyImage.png時,Flash Builder將允許這樣的:

@Embed('assets/MyImage.png') 

,因爲它進行預處理,以/資產IDE的/MyImage.png,但ant/maven + mxmlc不會那樣做。

@Embed('/assets/MyImage.png') 

適用於Flash Builder和mxmlc。

如果使用這樣的相對路徑:

@Embed('../assets/MyImage.png') 

嘗試改變這一點,奇怪的,因爲它看起來:

@Embed('/../assets/MyImage.png') 

領先/被翻譯成「我的src目錄「,並且mxmlc從那裏進行路徑計算的其餘部分。

希望這會有所幫助。