Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache flex 如何使用flex4嵌入纯as3位图资源(使用flex3)_Apache Flex_Flash_Actionscript 3_Flex3_Flex4 - Fatal编程技术网

Apache flex 如何使用flex4嵌入纯as3位图资源(使用flex3)

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

在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框架(文件大小也这么说)


在使用嵌入式时,有没有更好的方法来冒充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项目中使用时,将无法工作。我把文件移到了不同的项目中,一切都很好。谢谢你的理智检查。非常感谢。