在Flex3中,我可以编译纯as3代码并使用"embed“标记来加载图像。这是通过Flex创建一个BitmapAsset类来完成的。
我仍然可以在Flex4中做到这一点。
然而,有一个技巧可以伪装flex3,并使用我自己的mx.core.BitmapAsset类来删除Flex的BitmapAsset带来的一些无关紧要的东西。这在这里描述:http://www.ultrashock.com/forums/flex/embed-flex-assets-without-using-flex-123405.html
不幸的是,我无法将这些技巧用于Flex4并获得较小的文件大小。我以错误"VerifyError: error #1014:找不到类mx.core::BitmapAsset“结束。
这个错误将我带到这个论坛,并在那里描述了一个解决方案:http://tech.groups.yahoo.com/group/flexcoders/message/148762
按照这个建议,我添加了-static-link-true shared-libraries=true,并且我的swf加载没有错误...但这意味着我加载了我想省略的flex框架的部分(文件大小也说明了这一点)。
当涉及到使用嵌入时,有没有更好的方法来伪装flex4?
发布于 2010-06-14 23:10:50
我在Flex4中用[Embed]和伪BitmapAsset.as创建了一个测试项目,看不到异常:
package
{
import flash.display.Sprite;
public class EmbedTest extends Sprite
{
public function EmbedTest()
{
addChild(new smile());
}
[Embed("smile.png")]
private var smile:Class;
}
}尝试添加-link-report link-report.xml编译器选项并检查bin-debug中的link-report.xml文件。
你那里有BitmapAsset.as吗?如果不是,您可能已通过externs、external-library-path或load-externs将其排除。
发布于 2010-04-20 17:26:44
像这样的东西会起作用吗?
[Embed(source="yourImage.jpg")]
private var ImageC:Class;
private var image = new ImageC();基思·彼得斯在这个问题上有一个很好的article。
https://stackoverflow.com/questions/2664947
复制相似问题