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