批量发布Flash文件

我现在主要的工作是负责做多媒体动画了,我不会绘画,也不懂设计,不过我会写程序。好呆也是做过.net编程的。

大家Flash动画做了上千个,要发布产品了,于是研发主管招唤大家一起发布,可我是个懒人,首先就想,有没有批量发布的程序。

网上搜了一下,还真有。是用jsfl写的。

代码看懂了,又找了些jsfl的教程看了看,于是决定扩展一下功能,写个flash插件出来,至少带个操作界面,用时方便,毕竟这个东东不只是我用。

这个flash插件功能很简单,能够批量发布一个或多个文件夹下的fla文件,包括其子目录下的;设定好,让它慢慢发布就行了,还算实用,至少能满足我现在的工作。

首先是一个UI。

PublishBatUI.xml

<?xml version="1.0" encoding="utf-8"?>
<dialog buttons="accept, cancel"  title="批量编译Flash文档" >
   <vbox>
   <checkbox id="cbSubDir" label="是否包括子文件夹" checked="true" accesskey="s" />
   <!--<checkbox id="cbOnlyUnpublished" label="是否只发布更新过的Flash" checked="true" accesskey="u" />-->
   <label value="Flash文档所在路径: (多个路径请换行)" />
   <!--<button target="mm" id="btnSelPath" label="选择文件夹"/>-->
   <textbox id = "tbPaths" size="100" height="300" multiline="true"/>
    <!-- <label value="发布后的路径:(默认为.fla文件的当前路径)" />
<textbox id = "pubpaths" size="100" multiline="false"/>
   <checkbox id="cbIsSaveFlaPath" label="是否按.fla文件存放路径,保存发布后的.swf文件" checked="true" accesskey="p" />-->
   <vbox>
</dialog>

文件名,就是PublishBatUI.xml。

然后就是Jsfl代码了。

批量发布Fla.jsfl

//批量发布Flash文件。
var tempDoc=undefined;
if(fl.documents.length==0){
  //xmlPanel need a document, if there is none, create a temp document
  tempDoc=fl.createDocument();
}
//创建操作界面
useUI = fl.getDocumentDOM().xmlPanel(fl.configURI + "Commands/PublishBatUI.xml");
//计数
var pubNum=0;
if(tempDoc){
  //close temp document
  fl.closeDocument(tempDoc);
}
if(useUI.dismiss=="accept"){
  //是否包括子目录
  var isSubDir=useUI.cbSubDir;
  //fl.trace(isSubDir);
  //是否只发布更新后的
  //var isOnlished=useUI.cbOnlyUnpublished;
  //源文件路径
  var txtPaths=useUI.tbPaths.split("\r\n");
  //打开选择窗
  //var folderURI = fl.browseForFolderURL("请选择要编译的文件夹:");
  //fl.trace(folderURI)
  for(var i=0; i<txtPaths.length; i++)
  {
   var path=txtPaths[i]="file:///"+txtPaths[i].split(":").join("|").split("\\").join("/");
   pubBatFla(path,isSubDir);
  }
  fl.trace("操作完成,累计生成"+pubNum+"个。");
}
//
//批量发布Fla文件
//flaDir:fla所在的文件夹;
//isSubDir:是否编译子文件夹下的fla,true为编译为子文件夹;
function pubBatFla(flaDir,isSubDir)
{
  //当前目录下的文件
  var files= FLfile.listFolder(flaDir,"files");
  for (var i=0; i<files.length; i++) {
   pubFla(flaDir+"/"+files[i]);
  }
  //不再编译子文件夹
  if(!isSubDir)return;
  //当前目录下的子目录
  var subDir= FLfile.listFolder(flaDir,"directories");
  for (var j=0; j<subDir.length; j++) {
   pubBatFla(flaDir+"/"+subDir[j],isSubDir);
  }
}
//发布fla文件
//fileURL:完整的Fla文件路径
function pubFla(fileURL)
{
  if(fileURL.indexOf(".")>-1)
  {
     //当前文件后缀名
   var flExt= fileURL.substr(fileURL.lastIndexOf("."));
   //如果是fla文件,则执行发布
   if(flExt.toLowerCase() == ".fla"){
    var doc=fl.openDocument(fileURL);
    doc.publish();
       doc.close();
    pubNum++;
   }
  }
}

文件名保存为“批量发布Fla.jsfl”

将两个文件放置到如下目录下:

如果是Flash8,放到C:\Documents and Settings\Administrator\Local Settings\Application Data\Macromedia\Flash 8\zh_cn\Configuration\Commands

如果是Flash CS3,放到C:\Documents and Settings\Administrator\Local Settings\Application Data\Adobe\Flash CS3\zh_cn\Configuration\Commands

重新打开Flash,不管是flash8还是flash cs3,在其主菜单“命令”中,都会看到“批量发布fla”的命令。

本文配套源码

时间: 2024-11-02 07:57:01

批量发布Flash文件的相关文章

如何获取Flash文件信息

WinCE6.0下多媒体播放.flash播放需要获得视频源文件的播放时长,针对嵌入浏览器的Flash控件,如何获得flash文件的播放时长,参考信息! 以一个实际的SWF文件头为例: 46 57 53 05 B4 66 07 00 70 00 0F A0 00 00 BB 80 00 0C 9F 03 字节 1-3 (46 57 53): SWF文件头标志,FWS表示未压缩,CWS表示压缩的SWF文件,需要从第9个字节起用ZLib解压 字节 4 (05): Flash文件的版本,这里表明它是用F

如何批量发布网站

问题描述 如何将我本地的网站批量发布服务器iis上问题补充:文件除了config以外其它的都一样希望高手们能给出一个解决方案或者谁能推荐某个软件也成 解决方案 解决方案二:用VS制作成安装包,在安装过程中用户自己配置CONFIG文件内内容,如数据库连接字符串

ASP.NET插件uploadify批量上传文件完整使用教程_实用技巧

uploadify批量上传文件完整使用教程,供大家参考,具体内容如下 1.首先准备uploadify的js文件,网上一搜一大堆 2.上传页面UpFilePage.aspx 关键代码: <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <meta http-equiv="Content-Type" content="text/h

asp.net批量多选文件上传解决方案_实用技巧

多选文件上传,已经非常多了,选择性多了可能有时候要比较下哪个更合适,结合到项目中使用更方便才是最重要的.很多的多选上传基本上都是调用的swf文件,确实用flash 或flex开发一个多选上传的功能很方便,比如flex里内置的FileReferenceList对象本身就支持文件的多选,有这个的话就方便多了,下面要说的主要也是基于flex开发的一个多选上传功能.主要实现的功能如下: 一.选择多个文件上传并显示单个文件的上传进度 二.显示所有文件总的上传进度 三.显示所有上传文件的总大小 四.上传前可

win7系统下批量重命名文件的方法

  在win7下我们对于同类文件来说,如果想要以数字编号的形式命名文件的话,是无需借助第三方软件即可完成修改的,不过很多不知道如何操作,故此小编为大家带来了Win7如何同时重命名多个文件的方法,需要的用户赶快学习下吧! win7系统下批量重命名文件的方法 1.在保存文件的时候可以采用系统自动分配名字的方法,即保存的时候系统显示的什么名字,就让它默认为什么名字,这样的名字也不会重名,保存起来相当的快. 2.选中文件夹中所有需要重命名的文件,直接按组合键ctrl+a就行,然后按F2,接下来输入希望设

Win7如何批量重命名文件?

  大家在用电脑时,经常会遇到需要批量重命名文件的问题.如果文件不多还好办,不然挨个重命名是很麻烦的事.所以,掌握重命名小技巧还是非常有必要的.下面小编就向大家介绍一下这个简单实用的方法,适用于Win7/Win8.1/Win10系统. 具体步骤如下: 1.全选你想重命名的文件,如下图-- 2.在选中状态的一个文件上点右键,选择重命名,如下图-- 3.一个文件改好新名称后,其他文件依次被序号标记,如下图-- 方法很简单,只不过修改的时候要注意文件排列顺序,以及被修改的"样本文件"排序位置

将WPS演示文档转换成Flash文件

  我们经常会在演示文稿中用到一些比较特殊的字体,在别人电脑上展示时效果就没那么好了,解决方法之一就是把字体也拷到对方电脑里安装再演示.其实用wps有更简单的方法. WPS演示默认附带了闪播插件(如果没有可以在工具→插件平台中安装),只要点击文件→输出为Flash格式,就可以将演示文稿保存为Flash文件,这样即使对方的电脑没有字体甚至没有办公软件,也不影响展示正常播放.

批量修改RAR文件注释的php代码

我们打开WINRAR的帮助文件,帮助文件中提到了在命令行模式下修改RAR文件注释及添加压缩文档的两个参数分别为A\C,WINRAR的说明文件如下: 从当前文件夹添加全部 *.hlp 文件到压缩文件 help.rar 中 WinRAR a help *.hlp 从文件添加注释可以使用 -z<文件> 开关. WinRAR c -zinfo.txt dummy 这样,我们就可以通过PHP调用CMD,运行上述两个WINRAR参数来做到批量修改RAR文件的注释及添加压缩包的文件.需要注意的是,PHP在安

巧妙提取Flash文件中的素材

我们知道,课件是否优秀在某种程度上取决于它所用到的素材,因此从其他已有课件中获取需要的素材,是我们提高课件质量的有效方法之一. 对于非Flash课件来说,我们可以通过录音软件(如TotalRecorde)获得其中的声音,抓图软件(如SnagIt)获取其中的图片和文字,录像软件(如屏幕录像专家)获取其中的动画.而对于Flash课件来说,由于课件中很多图片和动画都是矢量格式,通过常规手段获取后,无论是动画还是图片都是以位图为主了,这样不但大大增加了它的体积,而且修改时也非常不方便.因此本文将为大家提