我有一个带有嵌入类的 FlexLib项目:
package
{
public class EmbedAssets
{
[Embed( source="image.png" )]
public static var IMAGE:Class;
}
}
在同一个项目中,我有一个使用此嵌入式图像的类:
package
{
import flash.display.DisplayObject;
import flash.display.Sprite;
public class Visual extends Sprite
{
public function Visual()
{
super();
var aa:DisplayObject = new EmbedAssets.IMAGE() as DisplayObject;
addChild( aa );
}
}
}
我还有另一个 Actionscript Project ,它使用 FlexLib项目并在舞台上添加 Visual 类:
package
{
import flash.display.Sprite;
public class AsTest extends Sprite
{
public function AsTest()
{
addChild( new Visual());
}
}
}
图像不会显示,只是。
我调试了应用程序,发现aa的bitmapData为NULL。但是,如果我实施Lib Project,这项工作!
在项目的属性中,ai在Flex库构建路径上尝试了很多配置 - >课程/资产。但没有一个正常工作。
答案 0 :(得分:1)
编辑: Idemax Green(问题作者)发现它适用于普通的SDK,但不适用于Flex SDK Hero - Beta - 4.5.0.17689,他将其记录为错误:{{3} }
如果FlexLib项目与您的应用程序代码合并,那么我很确定它不会在运行时在该位置看到图像,因为位置将是不同的,例如该库将位于主应用程序的 libs 文件夹中。检查FlexLib swc在bin-debug文件夹中的位置,并修改EmbedAssets中的路径以反映这一点。
答案 1 :(得分:0)
您应该将库项目的assets目录添加到应用程序项目的源路径中。
如果您使用的是FlashBuilder,则应编辑Flex应用程序的.project文件,并按如下方式扩展linkedResources
标记:
<linkedResources>
[...]
<link>
<name>[source path] assets</name>
<type>2</type>
<locationURI>YOUR_WORKSPACE/YourFlexLib/src/assets</locationURI>
</link>
</linkedResources>