赞
踩
http://www.cnblogs.com/shinings/archive/2010/4/10.html
为什么要学习jsfl?
作为一个有些经验的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,在“命令”菜单里运行“火山习惯”,看一下效果吧:)
经典论坛讨论:
http://bbs.blueidea.com/thread-2796346-1-1.html
或许你不知道fjsfl是什么, jsfl 确却的说就是Adobe Flash JavaScript API 。 我们在flash里的可视化编程基本由这些接口完成。 功能很强大,只要你熟悉了它,你就可以自己扩展flash ide给他添加工具面板,创作自己的工具,新建一些命令处理来完成自己想处理的事情等。 形象点说,你如果用过早期的pv3d的话一定不会对那是pv3d的组件陌生的。其实pv3d的组件在创作中也运用到了jsfl 脚本去实现了很多在flash ide里的窗口功能 或者说你如果用过asv5或者asv6这款破解软件的话,不知道你是否知道,他的还原原理其实就是生成堆jsfl文件脚本文件来还原fla文件,对,或者应该说创建比较合适。可以这么说,任何你能手动在flash操作的步骤都可以用jsfl脚本来是实现。 好了下边先让大家认识先jsfl的类库吧; jsfl类库里提供了接近50个对象跟接近20个顶级方法。具体的你可以打开flash帮助的flash扩展一章。里边有详细的解说 全局方法 可从任何 JavaScript API 脚本调用以下方法: alert() confirm() prompt() 时间轴特效 下列函数专用于时间轴特效: configureEffect() executeEffect() removeEffect() 可扩展工具 在创建可扩展工具的脚本中,可调用以下函数: activate() configureTool() deactivate() keyDown() keyUp() mouseDoubleClick() mouseDown() mouseMove() mouseUp() notifySettingsChanged() setCursor() 对象 描述 actionsPanel 对象 actionsPanel 对象表示当前显示的"动作"面板。 BitmapInstance 对象 BitmapInstance 对象是 Instance 对象的子类,它表示帧中的一个位图。 BitmapItem 对象 一个 BitmapItem 对象是文档库中的一个位图。BitmapItem 对象是 Item 对象的子类。 CompiledClipInstance 对象 CompiledClipInstance 对象是 Instance 对象的子类。 compilerErrors 对象 compilerErrors 对象表示"编译器错误"面板,它是 flash 对象 (fl) 的一个属性,可以通过 fl.compilerErrors 访问。 ComponentInstance 对象 ComponentInstance 对象是 SymbolInstance 对象的子类,表示帧中的一个组件。 componentsPanel 对象 componentsPanel 对象表示"组件"面板,它是 flash 对象 (fl) 的一个属性,可以通过 fl.componentsPanel 访问。 Contour 对象 Contour 对象表示由形状边界上的半边缘组成的封闭路径。 Document 对象 Document 对象表示舞台。 drawingLayer 对象 drawingLayer 对象可以从 JavaScript 作为 flash 对象的子对象访问。 Edge 对象 Edge 对象表示舞台上一个形状的边缘。 Effect 对象 Effect 对象表示时间轴特效的一个实例。 Element 对象 出现在舞台上的所有对象都是 Element 类型。 Fill 对象 Fill 对象包含"工具"面板或某一选定形状的填充颜色设置的所有属性。 Filter 对象 Filter 对象包含有所有滤镜的全部属性。 flash 对象 (fl) flash 对象表示 Flash 应用程序。 FLfile 对象 FLfile 对象允许您编写可对本地文件系统中的文件和文件夹进行访问、修改和删除的 Flash 扩展。 folderItem 对象 folderItem 对象是 Item 对象的子类。 fontItem 对象 fontItem 对象是 Item 对象的子类。 Frame 对象 Frame 对象表示图层中的帧。 HalfEdge 对象 Shape 对象的边缘的有向侧。 Instance 对象 Instance 对象是 Element 对象的子类。 Item 对象 Item 对象是一种抽象基类。 Layer 对象 Layer 对象表示时间轴中的图层。 library 对象 library 对象表示"库"面板。 Math 对象 Math 对象可用作 flash 对象的只读属性;请参阅 fl.Math。 Matrix 对象 Matrix 对象表示一个变形矩阵。 outputPanel 对象 outputPanel 对象表示"输出"面板,它用来显示语法错误等疑难解答信息。 Oval 对象 Oval 对象是使用椭圆工具绘制的形状。若要确定一个项目是否为 Rectangle 对象,请使用 shape.isOvalObject。 Parameter 对象 从 screen.parameters 数组(对应于 Flash 创作工具中的屏幕"属性"检查器)或者通过 componentInstance.parameters 数组(对应于创作工具中的组件"属性"检查器)来访问 Parameter 对象类型。 Path 对象 Path 对象定义线段(直线、曲线或两者)的序列,通常在创建可扩展工具时使用。 Project 对象 Project 对象表示一个 Flash 项目 (FLP) 文件。 ProjectItem 对象 ProjectItem 对象表示一个已添加到项目中的项(磁盘上的文件)。 Rectangle 对象 Rectangle 对象是使用"矩形"工具绘制的形状。若要确定一个项目是否为 Rectangle 对象,请使用 shape.isRectangleObject。 Screen 对象 Screen 对象表示幻灯片或表单文档中的单个屏幕。 ScreenOutline 对象 ScreenOutline 对象表示幻灯片或表单文档中的一组屏幕。 Shape 对象 Shape 对象是 Element 对象的子类。当在舞台上操作或创建几何形状时,Shape 对象提供的控制比绘图 API 提供的控制更精确。 SoundItem 对象 SoundItem 对象是 Item 对象的子类。它表示一个用于创建声音的库项目。 Stroke 对象 Stroke 对象包含笔触的所有设置(包括自定义设置)。 SymbolInstance 对象 SymbolInstance 对象是 Instance 对象的子类,它表示帧中的一个元件。 SymbolItem 对象 SymbolItem 对象是 Item 对象的子类。 Text 对象 Text 对象表示文档中单独的文本项。 TextAttrs 对象 TextAttrs 对象包含能应用于部分选定的文本的所有属性。此对象是 Text 对象的子类。 TextRun 对象 TextRun 对象表示一串字符,其属性与 TextAttrs 对象中的所有属性相匹配。 Timeline 对象 Timeline 对象表示 Flash 时间轴,可通过 fl.getDocumentDOM().getTimeline() 访问当前文档的时间轴。 ToolObj 对象 一个 ToolObj 对象表示"工具"面板中的单个工具。 Tools 对象 可从 Flash 对象 (fl.tools) 访问 Tools 对象。 Vertex 对象 Vertex 对象是形状数据结构中保存坐标数据的部分。 VideoItem 对象 VideoItem 对象是 Item 对象的子类。 XMLUI 对象 XMLUI 对象能够获取和设置 XMLUI 对话框的属性,并能接受或取消其中的某个功能。 一般的说我们常用到的作对象一般为 flash 对象 (fl),Frame 对象,Layer 对象,Instance 对象,library 对象,Item 对象,outputPanel 对象等 先来个hello word 吧 jsfl中输出的方法有2个 fl.trace() 跟 outputPanel.trace() ; 步骤1: 新建一个 jsfl文件 然后 往里边写
看到flash上方有一个绿色的箭头没有,没错,按下它就会执行了。 要清除输出内容我们要用到对象的一个方法 clear();
可以这样做; outputPanel.save('file:///c:log.txt') 我们可以选择吧jsfl文件保存为命令,方便以后我们在命令菜单里调用,按crtl+s默认保存路径就可以了,当然我们也可以自己写包,但那样的话我们还需要用到 高级点的编程技巧,像fl.runScript() fl.runScript("file:///C|/testScript.jsfl", "testFunct", 10, 1); 执行c盘目录下的testScript.jsfl脚本的testFunct方法并把参数传递过去; 还有一个高级编程里经常用到的方法MMexecute() MMExecute("Flash JavaScript API command;":String) : String 这个可以说是整个“文档对象模型 (DOM)”的核心体现。 文档对象模型(DOM)简单的说就是把你的脚本文件转化为可执行命令行。也就是把字符串转成可执行命令行 。,它之所以强大在于你可以在程序里敲入一段字符串形式的代码,然后让他直接执行。当然了如果你是在as文件里敲的话要注意一点,如果你要执行的字符串脚本里包含有字符串就要多加一层引号才行,不要认为MMExecute的参数已经给了个引号下边的字符串脚本就不需要给,那样往往是出错的原 |
入门的东西我就带到着,下边给一个以前写的 jsfl 命令,给大家学习下, 大家通过这个例子可以了解到jsfl的强大方便之处也可以了解到怎么用jsfl来创建fla文件等 用法很简单,新建一个jsfl文件吧代码拷贝进去,保存成命令。然后倒入一些具有序列编号的图片到fla文件的场景,如:a-01.png,a-02.png,b-01.png,c-01.png,c-02.png,c-03.png,c-04.png这样命名的图片,然后执行下命令 然后就可以看到效果了,
|
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。