2

我正在尝试使用 Apache Flex SDK 4.10.0 中的 mxmlc 编译器编译 SWF 文件。该程序只是从一个名为asset1.txt 的文件中加载并显示文本。

这是我的代码:

package
{
    import flash.events.Event;
    import flash.display.Sprite;
    import flash.text.TextField;
    import mx.core.ByteArrayAsset;

    [SWF(width="20", height="20", backgroundColor="#ff00fa")]
    public class Main extends Sprite
    {
        [Embed("asset1.txt", mimeType="application/octet-stream")]
        private static var asset:Class;

        public function Main()
        {
            if (stage) init();
            else addEventListener(Event.ADDED_TO_STAGE, init);
        }

        private function init(e:Event = null):void
        {
            var assetBytes:ByteArrayAsset = ByteArrayAsset(new asset());
            var assetString:String = assetBytes.readUTFBytes(assetBytes.length);

            removeEventListener(Event.ADDED_TO_STAGE, init);
            var tf:TextField = new TextField();
            tf.text = assetString;
            addChild(tf);
        }
    }
}

问题是当asset1.txt中包含的文本长度小于4字节时,嵌入文件中的所有字节都被空字节替换,否则一切正常。例如,当文本文件包含“abcd”或“abcde”时,该文本文件正确嵌入到 SWF 中,但当它包含“ab”或“abc”时,则不正确。任何想法?

4

1 回答 1

0

也许是 Flex 版本的错误,我使用 Flex 4.6 并测试您的代码并且运行良好,尝试使用不同版本的编译器。希望有帮助

于 2014-08-20T13:57:57.350 回答