代码之家  ›  专栏  ›  技术社区  ›  jtrim

AS3嵌入资产-“警告:分析损坏的数据失败”

  •  0
  • jtrim  · 技术社区  · 14 年前

    我有一个AS3项目,我正在尝试用几个图像、一个音轨和一个视频通过 [Embed] 元数据。嵌入这些是产品要求,因此网络传输不是一个选项。

    我得到了一些非常奇怪的行为——一种编译数据的间歇性损坏。有时在项目编译后,我会运行SWF,它会立即关闭,并将“警告:无法分析损坏的数据”写入闪存日志。如果我删除二进制文件并清理项目,有时在重新构建项目之后它会运行良好。有时不会。

    这可能是这个问题最奇怪的部分,但有时当我看到这个错误时,我可以物理地将视频[嵌入]行移动到文件的末尾,然后清理项目,它将构建并运行没有问题。有时我会将它们移回文件的开头,它会构建并运行良好。

    似乎它是编译器中的一个bug。其他人也有过类似的经历吗?我的目标是flash 10.1并使用sproute( http://projectsprouts.org )建立我的项目。这是用于编译的MXML行(MXML版本4.1.0内部版本16076):

    mxmlc -as3 -static-link-runtime-shared-libraries=true -debug -default-background-color=#ffffff -default-size 712 400 -output=bin/ProjectName.swf -source-path+=.preprocessed/src -source-path+=.preprocessed/assets .preprocessed/src/ProjectName.as
    

    我试过把 -debug 编译器选项并添加 -optimize 选择,但没有运气。

    所有东西都在GNUC预处理器中运行,以执行其他一些任务,所以也许我会尝试删除预处理器的内容,并对这些变量进行硬编码……我会在明天尝试并发布结果。

    任何见解都会受到赞赏。谢谢!

    编辑:

    这个项目将被动态编译,不同的资产被嵌入到同一个代码库中,因此切换到类似flash builder的东西进行编译实际上不是一个选项……必须通过命令行mxmlc完成。

    更新:

    结果发现损坏的数据消息是由于使用Photoshop的“保存到Web”功能创建的图像造成的。如果我将它们直接保存为PNG图像,我就不会收到消息。然而,电影的间歇性,适当地编译似乎仍然是一个问题。现在,有时当项目被编译时,它不会抛出任何编译器错误,但是我得到一个空白的FlashPlayer窗口。在FlashPlayer中单击鼠标右键会显示一个上下文菜单,其中显示一条消息“movie not loaded…”,这似乎与首先通过cpp运行的内容没有任何关系。

    [Screenshot]

    2 回复  |  直到 13 年前
        1
  •  1
  •   jtrim    14 年前

    这显然是mac os x下的mxmlc中的一个bug。发布后,我观察到了一些其他非常奇怪的行为,所以我将整个代码库切换到了windows 7。在那里一切都按预期工作(仍然使用项目sprouts作为构建工具)。

        2
  •  0
  •   Eugene    14 年前

    flash builder可以。

    您是否可以将您的问题仅限于视频或音乐,或者这两个问题都是正确的?