Loader.contentLoaderInfo.bytes

  习惯上,我们是用 Loader 加载可视的文件,例如 jpg、png、swf 等等。但个别情况下,我们还需要对已加载文件的二进制数据进行处理,这种情况下我第一时间想到的就是 URLLoader 类。在我的脑里习惯上是这样认为的:Loader 的工作是把可视文件显示在舞台上,而 URLLoader 的工作是获得任何文件的二进制数据,但其实不然。对于图片和 swf 文件,既想把它们放到显示列表又想对其二进制数据进行处理,只使用 Loader 即可。其二进制数据由 Loader.contentLoaderInfo.bytes 间接获得。为什么说间接?因为 Loader.contentLoaderInfo.bytes 不完全是文件的原始二进制数据(ByteArray)。Flash Player 对其进行处理过。

        事实上,Loader.contentLoaderInfo.bytes 是一个符合 SWF 文件格式的二进制数据。你可以做一个测试:用 Loader 加载一张图片后,使用 FileReference.save() 方法把 Loader.contentLoaderInfo.bytes 保存到本地,扩展名为“.swf”。你可以用 Flash Player 成功地打开它。甚至,你还可以按照 SWF 文件格式解析 Loader.contentLoaderInfo.bytes 。

        那么,使用 Loader 加载一张图片,要如何才能获得图片的原始二进制数据呢?我做过测试,去掉 Loader.contentLoaderInfo.bytes 最前的 45 字节和最后的 17 字节,剩下中间部分就是图片的原始二进制数据了。
原文地址:https://www.cnblogs.com/sinsoul/p/1984123.html