mxmlc嵌入资产

2xM*_*Max 6 apache-flex actionscript mxmlc flex4

我正在尝试通过mxmlc以这种方式编译我的项目:

[prj_folder]\src>mxmlc mymxml.mxml -library-path+=../libs -sp+=..\assets
Run Code Online (Sandbox Code Playgroud)

我得到这样的错误:

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

[prj_folder]\src\view\constants\Images.as(24):col:3:错误:无法转码assets/icons/icon1.png.

如何为编译器包含资产?

Sco*_*t A 6

Flash Builder预处理文件.

对于像这样的目录结构:

projectdir/src/Main.mxml
projectdir/src/views/SomeView.mxml
projectdir/src/assets/MyImage.png
Run Code Online (Sandbox Code Playgroud)

如果SomeView.mxml引用assets/MyImage.png,Flash Builder将允许:

@Embed('assets/MyImage.png')
Run Code Online (Sandbox Code Playgroud)

因为它由IDE预处理到/assets/MyImage.png,但是ant/maven + mxmlc不会这样做.

@Embed('/assets/MyImage.png')
Run Code Online (Sandbox Code Playgroud)

适用于Flash Builder和mxmlc.

如果您使用这样的相对路径:

@Embed('../assets/MyImage.png')
Run Code Online (Sandbox Code Playgroud)

尝试将其更改为此,奇怪的是看起来像:

@Embed('/../assets/MyImage.png')
Run Code Online (Sandbox Code Playgroud)

领先/被转换为"我的src目录",并且mxmlc从那里完成路径计算的剩余部分.

希望这可以帮助.


Jef*_*ser 0

这是目录设置问题;不是编译器错误。而且您实际上并没有嵌入资产;而是嵌入了资产。只是参考它们。

使用 Flash Builder 时,文件“assets/cssname.css”应相对于主应用程序文件。我相信如果您使用命令行编译器,也会发生同样的情况。

你的源目录有assets子目录吗?cssname.css 文件在里面吗?