【问题标题】:External Config file in Actionscript 3Actionscript 3 中的外部配置文件
【发布时间】:2010-07-03 01:27:31
【问题描述】:

我需要能够将外部配置文件加载到我的 flex 应用程序中。我读过这可以使用嵌入,只要将 mimeType 设置为 application/octet-stream。

package learning {
    import org.flixel.*;
    public class PlayState extends FlxState {
        [Embed(source = "../../data/tiles.png")] private var _tiles:Class;
        [Embed(source = '../../data/map.txt', mimeType = "application/octet-stream")] private var ExternalMapData:Class;

        public var txt:FlxText;
        public var player:FlxSprite;

        override public function create():void {
            bgColor = 0xffaaaaaa;
            super.create();
        }

        override public function update():void {
            super.update();
        }
    }
}

当我使用mxmlc 编译它时,它编译成功,没有错误。当我运行 SWF 时,它会加载所有 Flixel 菜单然后挂起。

如果我注释掉 [Embed(source = '../../data/map.txt' 行,它会编译并且不会挂起。

为什么这个嵌入会导致冻结?

mxmlc 的版本信息:

Adobe Flex Compiler (mxmlc)
Version 4.0.0 build 14159

编辑

原来错误没有正确显示,但这是我尝试嵌入的结果:

VerifyError: Error #1014: Class mx.core::ByteArrayAsset could not be found.

Google 发现了一群人有同样的问题,但没有明显的解决方案。

import mx.core.ByteArrayAsset; ByteArrayAsset

也无济于事。

【问题讨论】:

  • @M28 不重复 - 我有我想要的源代码,但由于某种原因它会导致程序挂起。那篇文章首先是在询问如何做到这一点。
  • 在你给出的问题中:'../../data/map.txt''../../map.txt',哪个是正确的?
  • ../../map.txt 是一个错字。谢谢

标签: apache-flex actionscript-3 mxmlc


【解决方案1】:

啊哈!事实证明,解决方案非常简单——运行时共享库​​没有被静态链接到 swf,并且在运行时没有正确设置路径以供访问。解决方法很简单:

要么修改 flex-config 说

<static-link-runtime-shared-libraries>true</static-link-runtime-shared-libraries>

或者手动传入参数给mxmlc

mxmlc -static-link-runtime-shared-libraries=true -debug=true Main.swf -- Main.as

【讨论】:

    【解决方案2】:

    我会用我对另一个问题的回答来回答这个问题:

    [Embed(source = "ExampleText.txt", mimeType = "application/octet-stream")]
    protected var AAAAAA:Class;
    
    var tmp:ByteArray = new AAAAAA();
    var result:String = tmp.readMultiByte(tmp.bytesAvailable, tmp.endian);
    

    【讨论】:

    • +1。不过,我认为您的第二个参数是拼写错误(因为将缓冲区字节顺序作为编码传递并没有多大意义!)。
    • 感谢有关如何实际提取数据的建议 - 但程序仍然挂起。
    • @Juan:在写这篇文章的时候,它是正确的,我不确定参数是否改变了。
    • @Jamie:我认为问题不在我的代码中,我不确定,因为它太旧了
    • @Juan:我刚查了一下,我的源代码还在我的旧项目上工作,甚至在最新的sdk中编译。
    猜你喜欢
    • 2010-10-22
    • 1970-01-01
    • 2010-10-23
    • 1970-01-01
    • 2015-03-12
    • 1970-01-01
    • 2016-12-03
    • 2018-05-06
    • 2014-03-14
    相关资源
    最近更新 更多