利用JSFL批量制作
想利用ria来生成swf,可以当看过swf文件规范之后感觉这样做似乎过于复杂了。以前衰人给过一个使用Flash CS3 IDE的扩展来制作的方式,没有怎么深入去看。周末仔细研究了一番,感觉走了弯路了。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 { //没有在目录中的位图则表示没有处理 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 { 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("没有需要处理的位图!"); }
作为一个有些经验的FLASH开发者,想必都会形成一些自己的开发习惯,比如很多人都喜欢把主时间轴第一层命名为:“AS”,第二层命名为“Label”,类似这样的劳动都是重复的,我们有办法可以简化它们么?答案是肯定的,于是jsfl隆重登场了。 什么是jsfl? 如果说AS是用来在SWF运行时运行的脚本,而jsfl则是在Flash编辑环境下运行的脚本。在这里我不想用太多专业的术语打击新手继续学习的信心,我想先带大家做一个非常简单的实验,实验环境:操作系统(Win XP2),FLASH开发环境(FLASH 8 简体中文版)。
上面的实验告诉我们什么? 相信大家已经能简单的体会到jsfl的作用了,它可以通过一些jsfl脚本自动完成对应的FLASH编辑操作。另外我们还应该了解到如下知识才算阶段性毕业:
jsfl脚本只能从“历史记录”面板中生成么? 当然不是,“历史记录”面板所能生成的jsfl非常有限,要想实现复杂的功能,就必须自己手动写Flash JavaScript代码了。至于jsfl的官方专业解释,大家可以去查看FLASH 8帮助文档中的《扩展 Flash》一书,书中还有jsfl的应用示例和程序字典,我就是看着这本书自己研究的。 jsfl到底有多强大?我们有必要学jsfl么? jsfl多强大我还不能确切的告诉你,因为我也没深入学习呢:)但用过ASV5的朋友应该都知道,ASV5能把SWF中的所有元素都分离出来,并产生一个jsfl文件,然后运行这个jsfl文件就可以把那些分离出来的元素组合为一个fla源文件了,由此可见jsfl的强大能力了吧?至于有没有必要深入学jsfl,那要看你的兴趣和工作需要,火山目前的工作可能需要批量生产一些结构复杂却类似的SWF,于是对火山来说,jsfl就比较重要了。 个满足火山日常开发习惯的综合例子: 火山开发习惯:目前我在开始一个面向过程的项目之前,以下三个工作是必不可少的。
新建一个fla,在“命令”菜单里运行“火山习惯”,看一下效果吧:) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |