每天学一点flash(85) jsfl 批量导出swf

       adobe  jsfl 这个项目已经不再更新了,但是我 觉得对于游戏来讲,写一些jsfl打包一下资源也是挺方便的。因为实在好用。最近很忙,基本上每天都加班到10点以上才能回到宿舍,好吧,为了生活和理想,我想还是继续坚持下去。最近接了一个任务,需要把NPC的头像都打包成每一张swf,并添加帧链接为“head”,为每一个NPC头像改成swf方式。但是数目很大,每一张图片打包位图都是一项体力活。(O(∩_∩)O哈哈~ 为了偷懒,要想个办法)。

     下面简单东拿西拿拼接了一下代码。实现了这个小小的功能。基本过程:导入文件夹,为每一张位图添加链接"head",然后导出swf,重置不勾选状态,并继续进行下一个位图导出。在导出的过程当中。可以对资源的质量进行设置一下, 这样子压缩就有效果了。

         item.quality = 80; //设置质量为80

       如果,添加帧链接的时候不是指定的名字,那么也可以修改为

            item.linkageClassName =className

           item.linkageExportInFirstFrame = true;

           item.linkageURL=className;

           至于怎样改方便,凭自己自由组合。

            好,该起床吃早餐了。

 

var ImageURL;

browImageFile();

/*打开图片文件夹*/
function browImageFile()
{
	fl.outputPanel.clear();   
	ImageURL= fl.browseForFolderURL("请选择素材文件夹"); 
	if(ImageURL)
    importFolder(ImageURL);  
	fl.trace(ImageURL);
}

/*导入文件夹*/
function importFolder(folderURI) 
{
	var dom = fl.getDocumentDOM();
    var lib = fl.getDocumentDOM().library;
    fl.trace(folderURI);        
    var folderContents;
    var fitem;
        
    var libPath = folderURI.replace(ImageURL, "");
		
    var subLibPath = libPath.substr(1);        //去掉第一个“/”
       
    //文件
    folderContents = FLfile.listFolder(folderURI, "files");
		
        for (var i in folderContents) 
		{
                fitem = folderContents[i];
                var inx = fitem.lastIndexOf(".");
                if (inx > 0)
				{
                        var ext = fitem.substr(inx+1).toLowerCase();  //扩展名
                        if (ext == "jpg" ||ext == "png" || ext == "gif")
						{
                                fl.trace("导入文件:" + fitem);
                                dom.importFile(folderURI + "/" + fitem, true);                               
                                if (libPath != "")
								{
                                    lib.selectItem(fitem);
                                    lib.moveToFolder(subLibPath);
                                }
                        }
                }
        }
    
 alert("文件夹导入完成!"); 	
 addAllImagAsLink();
  
}

/*给所有图片添加as链接*/
function addAllImagAsLink()
{
 	
   var doc=fl.getDocumentDOM(); 
   var lib=doc.library; 
   if(lib.items.length==0)return;  
for(i=0; i<lib.items.length; i++)
{ 
  if(lib.items[i].itemType=="bitmap")
  {
    var item = lib.items[i]; 
	var className ;
    item.linkageExportForAS = true; 
	if(item.name.lastIndexOf(".")!=-1)
	{
       className = item.name.substr(0, item.name.lastIndexOf("."));
	   fl.trace("导出swf文件:"+className+"swf");
	} 

	item.linkageClassName ="head"; 
    item.linkageExportInFirstFrame = true;
	item.linkageURL="head";
	item.linkageBaseClass = "flash.display.BitmapData";
	item.quality = 80;      //设置质量为80
	exportSwf(ImageURL+"/"+className);
	item.linkageExportForAS = false; 
  }
} 
 delectLib();
}

/*导出swf*/
function exportSwf(name)
{
	fl.getDocumentDOM().setPlayerVersion(10);
	fl.getDocumentDOM().exportSWF(name,true);
}

/*删除所有*/
function delectLib()
{
	var lib = fl.getDocumentDOM().library;
	lib.selectAll();
	var selItems = lib.getSelectedItems();
	if(!selItems) return ;
	for(var i=0;i<selItems.length;i++ )
	{
		lib.deleteItem(selItems[i].name);
	}
	 alert("删除库所有元件操作结束!"); 
}


 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值