收藏本站腾讯微博新浪微博

经典论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

蓝色理想 最新研发动态 网站开通淘帖功能 - 蓝色理想插件 论坛内容导读一页看论坛 - 给官方提建议

论坛活动及任务 地图和邮件任务 请多用悬赏提问 热夏来袭,选一款蓝色理想的个性T恤吧!

手机上论坛,使用APP获得更好体验 急需前端攻城狮,获得内部推荐机会 论坛开通淘帖功能,收藏终于可以分类了!

搜索
查看: 12097|回复: 26

[服务器端交互] ★用 jsfl 扩展你的 flash

[复制链接]
发表于 2007-10-1 16:33:13 | 显示全部楼层 |阅读模式
★为什么要学习jsfl?
→作为一个有些经验的FLASH开发者,想必都会形成一些自己的开发习惯,比如很多人都喜欢把主时间轴第一层命名为:“AS”,第二层命名为“Label”,类似这样的劳动都是重复的,我们有办法可以简化它们么?答案是肯定的,于是jsfl隆重登场了:)


★什么是jsfl?
→如果说AS是用来在SWF运行时运行的脚本,而jsfl则是在Flash编辑环境下运行的脚本。在这里我不想用太多专业的术语打击新手继续学习的信心,我想先带大家做一个非常简单的实验,实验环境:操作系统(Win XP2),FLASH开发环境(FLASH 8 简体中文版)。
    1,首先把你的文件后缀名显示出来:→工具→文件夹选项→查看→把“隐藏已知文件类型的扩展名”选项取消。
    2,随便在那里右键新建一个空的TXT文本文件。
    3,打开FLASH8,然后新建一个fla,这时候你会看到时间轴上已经自动产生一个图层“图层 1”。
    4,在FLASH中打开“历史记录”面板。
    5,然后将时间轴“图层 1”改名为“AS”,这时观察“历史记录”面板,你会发现多了一条“层命名”。
    6,然后右键点击“层命名”,在弹出菜单中选择“复制步骤”。
    7,打开你的TXT文件,然后粘贴,这时你会看到TXT文件中出现一段代码:
fl.getDocumentDOM().getTimeline().setLayerProperty('name', 'AS');
    8,保存你的TXT文件,并重命名为:“把图层命名为AS.jsfl”。
    9,将你的“把图层命名为AS.jsfl”放到类似下面路径的文件夹下:
C:\Documents and Settings\Administrator\Local Settings\Application Data\Macromedia\Flash 8\zh_cn\Configuration\Commands
其中,Administrator是你的系统用户名。
    10,这时候点击FLASH主菜单栏中的“命令”,你会发现在“运行命令”的横线下面多了一条“把图层命名为AS.jsfl”的选项。
    11,再新建一个fla,然后选择“图层 1”,并执行“命令”菜单中的“把图层命名为AS.jsfl”,你会发现,“图层1”被自动命名为“AS”了。


★上面的实验告诉我们什么?
→相信大家已经能简单的体会到jsfl的作用了,它可以通过一些jsfl脚本自动完成对应的FLASH编辑操作。另外我们还应该了解到如下知识才算阶段性毕业:
    1,jsfl是一种脚本语言。
    2,jsfl文件应该放在那里。
    3,如何运行一个jsfl命令。


★jsfl脚本只能从“历史记录”面板中生成么?
→当然不是,“历史记录”面板所能生成的jsfl非常有限,要想实现复杂的功能,就必须自己手动写Flash JavaScript代码了。至于jsfl的官方专业解释,大家可以去查看FLASH 8帮助文档中的《扩展 Flash》一书,书中还有jsfl的应用示例和程序字典,我就是看着这本书自己研究的。


★jsfl到底有多强大?我们有必要学jsfl么?
→jsfl多强大我还不能确切的告诉你,因为我也没深入学习呢:)但用过ASV5的朋友应该都知道,ASV5能把SWF中的所有元素都分离出来,并产生一个jsfl文件,然后运行这个jsfl文件就可以把那些分离出来的元素组合为一个fla源文件了,由此可见jsfl的强大能力了吧?至于有没有必要深入学jsfl,那要看你的兴趣和工作需要,火山目前的工作可能需要批量生产一些结构复杂却类似的SWF,于是对火山来说,jsfl就比较重要了。


★一个满足火山日常开发习惯的综合例子:
→火山开发习惯:目前我在开始一个面向过程的项目之前,以下三个工作是必不可少的。
   1,时间轴最上层建立“AS”层和“Label”层
   2,“AS” 层第一帧写如下注释:
    //================系统设置================//
    //——————变量初始化
    //——————数组初始化
    //——————对象初始化
    //——————系统初始化
    //——————界面初始化
    //================功能逻辑================//
    //================函数模块================//
   3,库里建立三个文件夹:“0-image”,“1-sound”,“2-公用元件”。
→好了,需求有了,我们就开始写代码吧,前面我们已经知道jsfl文件应该放的位置了,这次就直接在那里建立一个“火山习惯.jsfl”,然后写下面的代码:

//第一步:自动产生AS层和Label层
fl.getDocumentDOM().getTimeline().addNewLayer("AS");
fl.getDocumentDOM().getTimeline().addNewLayer("Label");
//第二步:在“AS”层第一帧上添加注释
var layerIndex = fl.getDocumentDOM().getTimeline().findLayerIndex("AS");
fl.getDocumentDOM().getTimeline().layers[layerIndex].frames[0].actionScript = '//================系统设置================//\n//——————变量初始化\n//——————数组初始化\n//——————对象初始化\n//——————系统初始化\n//——————界面初始化\n//================功能逻辑================//\n//================函数模块================//\n';
//第三步:在库里自动创建文件夹
fl.getDocumentDOM().library.newFolder("0-image");
fl.getDocumentDOM().library.newFolder("1-sound");
fl.getDocumentDOM().library.newFolder("2-公用元件");

→新建一个fla,在“命令”菜单里运行“火山习惯”,看一下效果吧:)


★十一假期要出去,估计没什么机会上网了,写这篇教程就当十一给大家的一个小礼物吧。师傅领进门,修行在个人,要写出更复杂的jsfl应用,大家必须把帮助好好看看。如果有人写出通用的扩展功能了,不妨也贴出来让大家学习一下:)


★寂寞火山:http://www.huoshan.org/boKe/boKe.html#id=118

[[i] 本帖最后由 jimohuoshan 于 2007-10-1 16:46 编辑 ]

评分

参与人数 1威望 +3 收起 理由
HBrO + 3 精品文章

查看全部评分

发表于 2007-10-1 16:48:03 | 显示全部楼层
嗯,这项内容很有意义,但是我就一直没有去看过
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-1 16:53:36 | 显示全部楼层
其实很简单的,我一上午就研究出来了,你应该也没问题,只要有AS基础,理解JS不难。不过我还没尝试做大规模应用。
回复 支持 反对

使用道具 举报

发表于 2007-10-1 17:19:36 | 显示全部楼层
嘿嘿,支持,PF!学习!
回复 支持 反对

使用道具 举报

发表于 2007-10-1 23:40:03 | 显示全部楼层

放假不出去玩 跑这闲逛...

浪费青春啊
回复 支持 反对

使用道具 举报

发表于 2007-10-2 20:49:42 | 显示全部楼层
顶啊顶 ` 未命名.gif
回复 支持 反对

使用道具 举报

发表于 2007-10-3 00:06:56 | 显示全部楼层
8错
知道这玩意儿 但一直没碰过
听你这么一说 好像不太难 又很有用
有空试试
回复 支持 反对

使用道具 举报

发表于 2007-10-3 08:51:51 | 显示全部楼层
很有学习,刚才照火山兄的意思做了一下,成了.
回复 支持 反对

使用道具 举报

发表于 2007-10-4 09:37:41 | 显示全部楼层

非常有用的文章!

留下一个问题,大家帮忙解决一下:

如何可以使timeline的每个时间帧的尺寸由 Normal更改为 Medium呢?   history面板并不记录这个动作。我在菜单 Edit/ Perferences里头也没找到这个设置。
(每次看着那么小的一个格子总觉得要使它大一些。)
回复 支持 反对

使用道具 举报

发表于 2007-10-5 16:09:46 | 显示全部楼层
好,有空也研究下,对我应该也有用.
还有,你那个虚线去掉了,没看出你说的问题啊.
回复 支持 反对

使用道具 举报

发表于 2007-10-6 00:04:39 | 显示全部楼层
问一个问题,如何使用jsfl脚本来让swf具有数据保存功能,能不能做到?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-10 11:05:52 | 显示全部楼层
TO:02062007,历史面版中并不会记录所有的操作的jsfl代码的。
TO:HBrO,我没去虚框啊?你是不是改用遨游浏览器了?遨游显示FLASH本来就没有虚框的。
TO:panyigong,这个估计做不到。
回复 支持 反对

使用道具 举报

发表于 2007-10-11 08:55:42 | 显示全部楼层
顶啊顶~~~
回复 支持 反对

使用道具 举报

发表于 2007-10-21 22:34:02 | 显示全部楼层
用JSFL 试了下  随机命名库中的元素的名称

var lib = fl.getDocumentDOM().library;
for(var i in lib)
for(var j in lib[i])
lib[i][j].name = 'random' + Math.floor(Math.random()*100000) + '_' + Math.floor(Math.random()*100000);
回复 支持 反对

使用道具 举报

发表于 2007-10-22 08:20:19 | 显示全部楼层
每次都顶一下
回复 支持 反对

使用道具 举报

发表于 2007-11-21 10:23:10 | 显示全部楼层
学习了
回复 支持 反对

使用道具 举报

发表于 2007-12-29 16:54:36 | 显示全部楼层
ASV破解未加密swf,再生脚本就是此类哈。
回复 支持 反对

使用道具 举报

发表于 2007-12-29 17:39:58 | 显示全部楼层
看第一段就觉得眼熟,2年前看过,忘记作者了
回复 支持 反对

使用道具 举报

发表于 2007-12-29 19:20:51 | 显示全部楼层
可惜楼上只看了第一段

另外我想说.. 楼主的应用例子其实可以用模板来解决的

当然了. JSFL 是好东西.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-12-30 09:11:33 | 显示全部楼层
木研究过模板,听CAT这么一说,我有研究的兴趣了
回复 支持 反对

使用道具 举报

发表于 2007-12-30 13:15:45 | 显示全部楼层
其实模板有时真的很好用
回复 支持 反对

使用道具 举报

发表于 2008-3-14 01:22:37 | 显示全部楼层
楼主写得很好
不过我还是要去翻FLASH帮助才更清楚
支持
回复 支持 反对

使用道具 举报

发表于 2008-3-14 10:27:15 | 显示全部楼层
嘿嘿,支持,PF!学习!
回复 支持 反对

使用道具 举报

发表于 2010-1-28 13:03:53 | 显示全部楼层
挖坟啊!觉得随机不如有序好:
  1. var _l1=0
  2. var _l2=0
  3. for(var i in lib) {
  4.          _l1++;
  5.          for(var j in lib[i]){
  6.                    if(lib[i][j].itemType=="folder"){
  7.                    }else{
  8.                          _l2++;
  9.                       //lib[i][j].name = 'shanke.cn' + '_' +_l1+"_"+_l2+"_"+ Math.floor(Math.random()*100000);}
  10.                         lib[i][j].name = '元件'+" "+_l1+_l2;
  11.                    }
  12.          }
  13. }
复制代码



[[i] 本帖最后由 ybhm 于 2010-1-28 13:08 编辑 ]
回复 支持 反对

使用道具 举报

发表于 2010-3-24 12:17:58 | 显示全部楼层
支持下!!!
回复 支持 反对

使用道具 举报

发表于 2010-3-24 17:45:28 | 显示全部楼层
看来JS很有用,以前在PS里也用JS做过批处理重命名图层的功能。
回复 支持 反对

使用道具 举报

发表于 2013-1-11 11:30:14 | 显示全部楼层
嗯,学习了~~~
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|小黑屋|Archiver|手机版|blueidea.com ( ICP05002321 )  

GMT+8, 2019-10-21 23:47 , Processed in 0.125657 second(s), 14 queries , Gzip On, Memcache On.

Powered by Discuz! X3.2 Licensed

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表