读书人

JSFL导出构件滤镜配置

发布时间: 2013-07-04 11:45:55 作者: rapoo

JSFL导出元件滤镜配置
最近在用Starling框架开发移动游戏,项目中因涉及到大量的动画特效,导致资源量很大,内存吃不消。后来想到一个办法,因为好多特效动画都只是有颜色上的区别。就写了一个jsfl来导出flash pro里仅仅做了颜色变化元件的配置文件。程序中通过读取配置文件对同一份资源进行调色重复利用。使资源量大大减小。
JSFL导出XML的方式为,先将要保存的XML输出在控制台,然后再通过 outputPanel对象保存。大概为:

fl.trace("<?xml version=\"1.0\" encoding=\"utf-8\"?>");fl.trace("<fliterList imageName=\""+imageName+"\">");fl.trace("<item colorID=\""+element.name+"\">");var filters=element.filters;if(filters!=null){    for(var i=0;i<filters.length;i++)    {        var node="<"+filters[i].name+" ";        for (var prop in filters[i])        {            node+=prop+"=\""+filters[i][prop]+"\" ";        }        node+="/>";        fl.trace(node);    }}   fl.trace("</item>");fl.trace("</fliterList>");var fileURL = fl.browseForFileURL("save", "save file");fl.outputPanel.save(fileURL);
(详细脚本请见附件)

for循环为输出对象的滤镜名及所有参数。

美术同学只需要框选加完滤镜的元件—执行脚本—选择存储目录保存即可。保存成功之后我们将得到配置文件如下:

<?xml version="1.0" encoding="utf-8"?><fliterList imageName="bomd">    <item colorID="green">        <adjustColorFilter name="adjustColorFilter" enabled="true" brightness="0" contrast="0" saturation="0" hue="-84" />    </item>    <item colorID="red">        <adjustColorFilter name="adjustColorFilter" enabled="true" brightness="0" contrast="0" saturation="0" hue="140" />    </item>    <item colorID="blue">    </item></fliterList>


imageName:需要添加滤镜的源资源名。
item:单个滤镜结果对象,colorID为其名称。此处我们有三个结果,两个需要添加滤镜效果,一个为默认效果。
adjustColorFilter:滤镜效果—调整颜色。

程序读取配置后通过String提供的 ColorMatrixFilter对象可以完成对资源的颜色调整。

读书人网 >JavaScript

热点推荐