对于Flash 经常做游戏换皮时需要更改Flash中的图片UI路径,
一个一个的修改耗时有麻烦,尝试翻JSFL文档但jsfl 没有提供直接更改UI路径的方法,只能删除在重新导入,太麻烦了。
所以想下看能不能解析fla文件直接修改fla文件中的内容。
在网上搜了下,没有解析fla文件格式的教程。
就自己琢磨了几天发现,将.fla修改为.zip文件能打开。。。。发现了一个新的大门
目录结构如上图
bin 二进制文件
LIBRARY 库中的内容【包括图片什么的】
。。。
主要看这个文件: 【DOMDocument.xml】
修改图片的路径就在这里
之前尝试着手动修改在放到zip包里, 修改zip后缀为fla在用flash打卡,结果界面空白(不过现在好像是可以的了)
当时就懵了感觉此条路不通, 不过又不想放弃,就尝试用flash本身的东西去解析这个包在保存,
就选了air写了个解析的,结果可以正常运行的。
代码git 地址: https://github.com/chengyoujie/myProgramWay/tree/master/actionscript/tools_readfla
工具下载地址:https://download.csdn.net/download/jie1137815160/11186380
最后在用jsfl刷下资源
fl.trace("┌更新开始──────────────────────────────────────────────────");
var dom = fl.getDocumentDOM();
var library = fl.getDocumentDOM().library;
var allItems = library.items;
var len = allItems.length;
for( j=0; j<len; j++ )
{
item = allItems[j];
if(item.itemType == "bitmap")
{
if(item.linkageImportForRS)
{}
else
{
if(item.sourceFileExists)
library.updateItem(item.name);
}
}
}
dom.save();
//dom.publish();
//dom.close();
fl.trace("└更新结束──────────────────────────────────────────────────");