想利用ria来生成swf,可以当看过swf文件规范之后感觉这样做似乎过于复杂了。以前衰人给过一个使用Flash CS3 IDE的扩展来制作的方式,没有怎么深入去看。周末仔细研究了一番,感觉走了弯路了。JSFL已经可以通过很简单的代码来处理所有素材包的制作了,何必非要去做个另类的生成工具。
JSFL使用起来很简单,而且调试很方便。IDE里面的历史面板可以把你每一步操作使用的JSFL源码都告诉你。第一次使用你可能需要了解他的这个DOM结构,语法是js语法,即使你没有任何js基础,但是有AS基础就够用了。
1、当前打开的文档用fl.getDocument()取得,他是一个Document对象。
2、fl.getDocument().library 取得当前文档库的引用,做素材的话这个是最常用到的了。库面板上可以进行的操作,你都可以用API来做,看一下帮助文档就了解了,并不复杂。
3、fl.getDocumentDOM().getTimeline() 来访问当前文档的时间轴。此方法返回当前正在编辑的场景或元件的时间轴。也就是你当前正在操作哪个时间轴,显示的就是哪个时间轴。
4、时间轴上又分了层layer,每一个层又有不同的帧frame。程序可以取得任何的时间轴上面的层和帧的内容。
5、有的时候操作某个东西需要把他变成选择状态。场景中正在编辑的东西的选取可以通过坐标来操作,相当于你在某个坐标点了一下,那么这一点下最上层的物体就被选中了。
6、JSFL一般存储在C:\Documents and Settings\Samsung\Local Settings\Application Data\Adobe\Flash CS3\zh_cn\Configuration 里面(这个会不一样,到你的用户名下找一下,这里我的用户名是Samsung),一般你放到这个目录下的command目录里面,那么就可以在你的Flash CS3 IDE的菜单-》命令中找到。
如果想多了解多一点他的用法,可以参考衰人的帖子。http://bbs.actionscript3.cn/viewthread.php?tid=19760&highlight=jsfl
说了一堆,简单看一个例子就明白了。
开始制作之前我们先大致确定一下我们的需求:
1、我们需要把每一位图都变成一个MC,同时把这个MC作为一个导出类来用
2、每一个位图都有一个唯一的导出类名。
3、所有的位图变成MC之后都是左上角作为原点。
4、处理完的位图和MC都在库里面分目录存放,资源的种类作为目录。
5、位图的文件名中记录了种类、名称和导出类名。(本例中的位图命名规则为:种类_名称_导出类名.png)
最后使用的JSFL代码如下。
fl.getDocumentDOM().selectAll();//选中场景中所有的位图
if(fl.getDocumentDOM().selection.length>0)
{
fl.getDocumentDOM().deleteSelection();//删除所有位图
}
var lib=fl.getDocumentDOM().library;//取得库
var libLength=lib.items.length;//库元素的长度
var bitmapArr=new Array();//库里面没有处理的位图
for(var i=0;i<libLength;i++)
{
//没有在目录中的位图则表示没有处理
if((lib.items[i].itemType=="bitmap")&&((lib.items[i].name).indexOf("/")==-1))
{
bitmapArr.push(lib.items[i].name);
}
}
if(bitmapArr.length>0)
{
//创建目录
for(var i=0;i<bitmapArr.length;i++)
{
var name=bitmapArr[i];//位图的完整名称
var nameArr=bitmapArr[i].split("_");//位图名称的拆分数组
var folder=nameArr[0];//目录名称
var iconName=nameArr[1];//图标名称
var code=nameArr[2].split(".")[0];//图标编码
lib.newFolder(folder);
lib.selectItem(name);//选中位图
lib.addItemToDocument({x:0, y:0});//添加到场景
fl.getDocumentDOM().selectAll();
var mcName=iconName+"_"+code;
//转换为mc
fl.getDocumentDOM().convertToSymbol("movie clip",mcName,"top left") ;
if (lib.getItemProperty('linkageImportForRS') == true) {
lib.setItemProperty('linkageImportForRS', false);
}
lib.setItemProperty('linkageExportForAS', true);
lib.setItemProperty('linkageExportForRS', false);
lib.setItemProperty('linkageExportInFirstFrame', true);
lib.setItemProperty('linkageClassName', code);
lib.setItemProperty('scalingGrid', false);
fl.getDocumentDOM().selectAll();//选中场景中所有的位图
fl.getDocumentDOM().deleteSelection();//删除所有位图
var bitmapFolder=folder+"/图素";
var mcFolder=folder+"/导出类"
lib.newFolder(bitmapFolder);
lib.newFolder(mcFolder);
lib.moveToFolder(mcFolder, mcName);
lib.moveToFolder(bitmapFolder, name);
}
}
else
{
alert("没有需要处理的位图!");
}
完整例子在这里下载:jsfl制作swf素材包的例子。
- 大小: 153.9 KB
分享到:
相关推荐
把PNG图片转换生成为SWF,节省资源,让加载速度更快。
例说利用JSFL批改FLASH操作题的方法 FlashJavaScript(JSFL)是一种基于JavaScript的扩展脚本语言,让我们控制Flash的创作环境。 JSFL技术能帮助我们实现FLASH自动阅卷。
FLASH操作评分常用JSFL,FLASH操作评分常用JSFL,可制作FLASH的自评分练习题,可制作FLASH的自评分练习题,可制作FLASH的自评分练习题,
jsfl中文帮助文档,Adobe官网最新版,Flash cs6(更新时间2013-6-+11)
利用jsfl使png转成swf,请使用flash打开此文件
jsfl技术文档(帮助文档) 官方中文版,内含示例
JSFL实用代码,复制可用!项目中常用!
jsfl技术文档(帮助文档)
这是一个flashCS系列使用的jsfl文件。首先打开fla文档(该fla文档必须被保存过),之后双击运行该文件会将当前正在编辑的时间轴转换成位图序列。...flash网游素材制作和优化、 flash stage3D材质制作等
jsfl脚本, 让fla 中的mc批量生成fla,并发布 减小手工修改,
JSFL解析fla的一篇论文,展示了flash的xml结构和相关编程方法。
flash命令集,可导出Flash资源,批量发布fla文件,批量设置fla文件,设置库资源的类绑定等功能。
1、将文件另存为:RandomNameLibaray.jsfl 2、在flash中直接运行命令
利用FLash Javascript 接口,写的一个在flash CS中使用的自动描边的命令。 可以将一个静态文本自动打散-》自动描边-》自动填充颜色,提高Flash制作效率。
NULL 博文链接:https://wangchuang1113.iteye.com/blog/1888459
1、打开含有连接类的Flash源文件; 2、输入想要查找的文件名(支持关键字); 3、路径输出再Flash工作台
Flash CS5 Javascript 开发必备。 flash cs5 extending JSFL开发各种小工具,效果杠杠的。
动画化用于Adobe Animate的Jsfl动画工具
基于JSFL的Flash自动测评系统研究
带有提示性的清除未使用的元件,减小fla占用大小.