Apache flex 如何使用flex4嵌入纯as3位图资源(使用flex3)
在Flex3中,我可以编译纯as3代码并使用“嵌入”标记加载到图像中。这是通过Flex生成BitmapAsset类来完成的 我仍然可以在Flex4中这样做 然而,有一个技巧是伪造flex3并使用我自己的mx.core.BitmapAsset类删除Flex的BitmapAsset带来的一些无关内容。这里描述了这一点: 不幸的是,我无法让这些技巧与Flex4一起工作,并获得更小的文件大小。最后出现错误“VerifyError:error#1014:Class mx.core::BitmapAsset找不到” 此错误导致我访问此论坛,并提供了如下所述的解决方案: 按照这个建议,我添加了-static link runtime shared libraries=true,并且我的swf加载没有错误。。。但这意味着我正在加载我想省略的flex框架(文件大小也这么说)Apache flex 如何使用flex4嵌入纯as3位图资源(使用flex3),apache-flex,flash,actionscript-3,flex3,flex4,Apache Flex,Flash,Actionscript 3,Flex3,Flex4,在Flex3中,我可以编译纯as3代码并使用“嵌入”标记加载到图像中。这是通过Flex生成BitmapAsset类来完成的 我仍然可以在Flex4中这样做 然而,有一个技巧是伪造flex3并使用我自己的mx.core.BitmapAsset类删除Flex的BitmapAsset带来的一些无关内容。这里描述了这一点: 不幸的是,我无法让这些技巧与Flex4一起工作,并获得更小的文件大小。最后出现错误“VerifyError:error#1014:Class mx.core::BitmapAsset
在使用嵌入式时,有没有更好的方法来冒充flex4?类似的东西会起作用吗
[Embed(source="yourImage.jpg")]
private var ImageC:Class;
private var image = new ImageC();
Keith Peters在这方面做得很好。我在Flex 4中创建了一个测试项目,使用
[Embed]
和假位图资产。作为,无法看到异常:
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
将其排除。此外,它是actionscript还是flex项目?也许对于flex项目,它默认使用BitmapAssetYes,这是使用flex提供的命令行工具编译as3项目时嵌入资产的技术。以这种方式嵌入的资产需要来自flex框架的一些类。我文章中的第一个链接揭示了一种技术,可以减少这些类的大小,从而生成更小的文件swf文件。用flex4嵌入资产导致swf文件稍大,第一个链接中的旧技术不再有效。@jdierkb我想知道Joa Ebert的Reducer在flex4生成的swf()上是否有效。应该类似于java-jar reducer.jar-input old.swf-output new.swf(从终端/命令提示符)。您需要java 1.6,因此在PC上应该可以,但在osx上您需要apple的java更新,并且可以方便地在~/.bash_profile中导出路径(export path=/System/Library/Frameworks/JavaVM.framework/Versions/1.6/Commands:$path)。如果这样做有效,它将是一个解决文件大小问题的方案,但不是解决mx.*问题。不太喜欢类型错误-仅供参考图像类型为位图谢谢-几个月后的今天返回到这个问题。我使用一个假的mx swc用于各种项目,这些项目。。。不知什么原因。。。当使用flex4编译并在flex4项目中使用时,将无法工作。我把文件移到了不同的项目中,一切都很好。谢谢你的理智检查。非常感谢。