返回列表 回复 发帖

★用jsfl扩展你的flash

★为什么要学习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
http://huoshan.org
sf..先坐了再看``
好久没来了,很多熟悉的名字都不见了?
http://www.angels-love.cn
好,这个不得不顶
LS两位动作还真快:lol
http://huoshan.org
未命名.gif
2007-10-1 17:03
火山大哥,我想请教个问题~~

下面这段代码是FLASH读取一个网站页面的,需要登陆才会显示网页的完整内容,所以先用
sendvar2.email = "demologins@163.com";
sendvar2.password = "demologins";
sendvar2.sendAndLoad
成功登陆


  我在FLASH8里面测试的时候可以trace的出来完整内容,发到网上或者用浏览器打开时FLASH得到的数据却是显示你访问的页面不存在呢。。?
  1. stop();
  2. loadvar = new LoadVars();
  3. loadvar2 = new LoadVars();
  4. sendvar2 = new LoadVars();
  5. sendvar2.email = "demologins@163.com";
  6. sendvar2.password = "demologins";
  7. txt.text = "aa";
  8. loadvar.onData = function(sr) {
  9. if (sr !== undefined) {
  10.   trace(sr);
  11.   txt.text = sr;
  12.   txt.autoSize = true;
  13. } else {
  14.   trace("error!");
  15.   txt.text = "error!";
  16. }
  17. };
  18. loadvar2.onLoad = function() {
  19. trace("done");
  20. loadvar.load("http://www.angels-love.cn/1.asp?ur=http://xiaonei.com/getuser.do?id=230656560");
  21. /////////这里也可以用loadvar.load("http://xiaonei.com/getuser.do?id=230656560"),我用一个ASP转向是为了提高隐蔽性~~
  22. };
  23. sendvar2.sendAndLoad("http://xiaonei.com/Login.do", loadvar2, "POST");
复制代码
分析页面.fla (41.5 KB)

[ 本帖最后由 linchenrr 于 2007-10-1 17:05 编辑 ]
好久没来了,很多熟悉的名字都不见了?
http://www.angels-love.cn
你给个错误的链接看看吧,我好根据错误提示找原因。
http://huoshan.org
好,继续
在登陆的情况下进这个连接 http://blog.xiaonei.com/GetEntry.do?id=234540974&owner=232152597 就会出现错误提示,
然后自动跳转到 http://blog.xiaonei.com/ErrorNotExist.do

可以用测试帐号
用户名 demologins@163.com
密码 demologins
登陆

[ 本帖最后由 linchenrr 于 2007-10-1 18:48 编辑 ]
好久没来了,很多熟悉的名字都不见了?
http://www.angels-love.cn
顶死火山:lol
未命名.gif
2007-10-2 07:59
好久没来了,很多熟悉的名字都不见了?
http://www.angels-love.cn
已学...长见识了...:lol
佩服~
只有信念使快乐真实!
快乐,是精神和肉体的朝气,是希望和信念,是对自己的现在和来来的信心,是一切都该如此进行的信念!
返回列表