0

所以我正在运行 air 3.7,最新的 starling 框架,在编译器参数中添加了 -swf-version=20 -target-player=11.7 并运行代码

[Embed(source="/assets/wtf4.atf", mimeType="application/octet-stream")]
private static const why:Class;

var data:ByteArray = new why();
var texture:starling.textures.Texture = starling.textures.Texture.fromAtfData(data);
var image:Image = new Image(texture);
addChild(image);

如果我使用框架演示附带的starling atf,它可以正常工作,但是每当我尝试显示我在photoshop中创建的转换为atf的自己的png时,它都会给我一个错误提示

ArgumentError:错误 #3677:纹理解码失败。内部错误。

我试图转换为 atf 的图像只是一个红色方形 png,大小为 512x512,编译器参数为:png2atf -c -i example.png -o example.atf。我不确定我的闪存构建器是否没有设置为解码 atfs,或者我是否出于某种原因创建了错误的 atfs,如果有人能对此有所了解,那就太棒了!

4

2 回答 2

0

最新版本的 ATF 需要 AIR 3.8(目前处于测试阶段)。您需要下载 AIR 安装程序和最新的 AIR SDK。更多细节在这里:http: //forum.starling-framework.org/topic/error-3677-texture-decoding-failed-internal-error

于 2013-08-08T14:16:32.947 回答
0

创建 .atf 时,您是否也创建了 mipmap?如果没有,您需要将 Texture.fromAtfData() 函数的第二个参数设置为 false - 不要使用 Mipmap。

来自 Starlign 维基:

“如果省略 mipmaps,则必须将“Texture.fromAtfData()”方法的参数“useMipMaps”设置为“false”!否则会出现运行时错误。”

http://wiki.starling-framework.org/manual/atf_textures

于 2013-07-06T17:01:19.773 回答