ATF批量导出工具
08 / 31, 2013
已经迁移到http://xyliu.sinaapp.com/?p=95
批量导出Atf的工具,使用是adobe atf 编码核心
先说一下关于atf的bug
当atf导出时候 启用了mips选项 会导致:
如果纹理问长方形时 上传会报错的bug
解决方法是把纹理改成正方形
来张截图

功能说明
输出平台选择
压缩体积,减小文件大小
mipmap设置
合并xml
支持jpg png 转换
图像尺寸自动纠正为2幂
图像自动转换为方形,解决atf上传时 为长方形会报错的bug 仅在使用mips会触发 所以需要启用mips可以考虑勾选这个选项
目录转换(包含子目录)
输出质量设置
关于很多同学说导出的ATF报错的问题(只针对Starling)
其实问题很简单。了解Texture.fromAtfData的几个参数就行了
我们这里只要注意第3个参数
如果没有启用mips那么第3个参数必须传递false否则报错
合并xml之后如何创建纹理
如果选择合并xml,那么合并atf和xml产生的新文件会以.xatf结尾
以下为.xatf的解析代码
var urlLoader:URLLoader = new URLLoader();
urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
urlLoader.addEventListener(Event.COMPLETE,loaderComplete);
urlLoader.load(new URLRequest("asset/test.xatf"));
function loaderComplete(e:Event):void{
var bytes:ByteArray = urlLoader.data;
var xmlLength:int;
var xmlBytes:ByteArray = new ByteArray();
var atfBytes:ByteArray = new ByteArray();
bytes.position = bytes.length - 4;
xmlLength = bytes.readUnsignedInt();
bytes.position = bytes.length - xmlLength - 4;
bytes.readBytes(xmlBytes,0,xmlLength);
bytes.position = 0;
bytes.readBytes(atfBytes,0,bytes.length - xmlLength - 4);
if(AtfData.isAtfData(atfBytes)){
var texture:Texture = Texture.fromAtfData(atfBytes,2,false,null);
var textureAlats:TextureAtlas = new TextureAtlas(texture,XML(xmlBytes));
}
}
程序及源码下载
comments powered by Disqus