每天学一点flash(82) jsfl 的swf窗口面板
来源:互联网 发布:海康安防 js 编辑:程序博客网 时间:2024/06/06 04:39
因为工作需要,那天无意之中看到一个swfpannel 的对象,于是觉得好奇,我发现了这个对象可以扩展开始,而且非常有用。有时候觉得jsfl 的命令 放在flash 命令菜单那里调用不怎么好用。而另外一种方式,发现了我们可以自己制作一个swf 来自定义自己的窗口面板。有了这个面板之后,我们通过as 可以调用到jsfl 的命令,可视化操作可以让人看起来比较容易接受。
(jsfl 帮助文档 里面记录jsfl 命令)
一 基本 思路
这个flash是主要是list 组件组成,通过外部加载一个xml 文件获取相应的数据和操作,而里面命令,和名称 都对应好相应的操作。一开始的时候,我们只是需要加载到这个xml就行,而相关的命令都会记录在xml里面配置。
例如:
<label>[1] 导入一张图片 </label>// 标签
<fun >importOneImage</fun> //jsfl 命令函数名
<isuse>0</isuse> //是否使用默认jsfl文件 0 ,代表是 。1 代表不是
<fileName> </fileName> // 额外的jsfl文件,如果isuse 为1的时候,可以添加这里。
二 As调用jsfl 的函数
MMExecute(string字符串); 主要填写jsfl 命令 则可以用as 调用jsfl 命令
该命令在 import adobe.utils.MMExecute; 这里
三 配置
将制作好的flash swf 文件和xml ,jsfl 需要放置是windowSWF的文件夹里面去。这些jsfl帮助文档已经有很详细的说明
针对不同版本有不同放置方法,包括系统也是
文件夹位于引导驱动器\Documents and Settings\ 用户\Local
Settings\Application Data\Adobe\Flash CS4\ 语言\Configuration\WindowSWF 中。(flash cs4)
flash cs5 &flash cs5.5 则不一样
但是找到 WindowSWF这个文件夹 可以放置在这里。
如果不知道在那个位置:
则可以创建一个jsfl 命令
// store directory to a variablevar configDir = fl.configDirectory;// display directory in the Output panelfl.trace(fl.configDirectory);
输出这个命令则可以找到对应路径了。
四 最后界面
把制作好的swf,jsfl 和其他文件保存在WindowSWF文件夹后,重启第一次flash,那么就可以在flash菜单 窗口--->其他面板--->找到对应的菜单按钮。
这样我们的flash jsfl 命令就可以根据这个菜单来进行调用。看起来比较方便。
五 个性化设置
如果需要设置快捷键,则在flash 里面编辑 快捷键那里,复制一个副本,然后对这个面板配置一个快捷键进行弹出。
每次找的这个窗口的时候,只是需要我们简单的操作即可。
六 代码
package{import flash.display.Sprite;import flash.events.*;import fl.controls.List;import fl.data.DataProvider;import flash.net.*;import flash.text.TextFormat;import adobe.utils.MMExecute;import fl.managers.StyleManager;public class Main extends Sprite{private var loader:URLLoader;private var xml:XML;private var dp:DataProvider;private var defaultJsfl:String;//默认的jsfl文件public function Main(){loader=new URLLoader();loader.dataFormat=URLLoaderDataFormat.TEXT;loader.addEventListener(Event.COMPLETE,onLoadComplete); loader.load(new URLRequest("config.xml"));}private function onLoadComplete(event:Event):void{loader.removeEventListener(Event.COMPLETE,onLoadComplete);xml=XML(loader.data);defaultJsfl=xml.defaultJsfl;var myxml:*=XML(xml.root);dp = new DataProvider(myxml);creatListControl(dp);}//创建list组件private function creatListControl(dp:DataProvider):void{var list:List=new List();addChild(list);var format:TextFormat=new TextFormat("黑体",12,0x000000);StyleManager.setStyle("textFormat",format);list.dataProvider=dp;list.addEventListener(Event.CHANGE, changeHandler);list.width=300;list.height=400;list.rowHeight=30;}private function changeHandler(event:Event):void{var command:String=event.currentTarget.selectedItem.fun;var isUse:int=event.currentTarget.selectedItem.isuse;//是否使用了其他jsflif(isUse==0){ doAction(command,"WindowSWF/"+defaultJsfl+".jsfl");}else{ var path:String="WindowSWF/"+event.currentTarget.selectedItem.fileName+".jsfl"; doAction(command,path);}}//执行命令调用jsflprivate function doAction(command:String,path:String=""):void{ MMExecute("fl.runScript( fl.configURI + '"+path+"','"+command+"');");}}}
<config> <defaultJsfl>test</defaultJsfl> <root> <item> <label>[1] 导入一张图片 </label> <fun >importOneImage</fun> <isuse>0</isuse> <fileName> </fileName> </item> <item> <label>[2] 弹出Alert信息 </label> <fun >openAlert</fun > <isuse>0</isuse> <fileName></fileName> </item> </root></config>
jsfl 文件
//导入一张图片 function importOneImage(){ var imagePath= fl.browseForFileURL("select","导入一张图片"); if(imagePath) fl.getDocumentDOM().importFile(imagePath,true); } function openAlert(){alert("各位中秋节快乐啊!");}var configDir = fl.configDirectory; // display directory in the Output panel fl.trace(fl.configDirectory);
设置之后,可以尝试一下功能,就是这样子了。
- 每天学一点flash(82) jsfl 的swf窗口面板
- 每天学一点flash(85) jsfl 批量导出swf
- 每天学一点flash(80) jsfl设置图片的导出类
- 每天学一点flash(81) jsfl取消图片的导出类
- 每天学一点flash(70)弹出和关闭窗口
- 每天学一点flash(82)ByteArray的长度
- 每天学一点flash(50) 反余切的应用
- 每天学一点Flash(55) 认识类的结构
- 每天学一点flash(52) stage的认识
- 每天学一点flash(56)循环的小实验
- 每天学一点flash(50) 反余切的应用
- 每天学一点flash(71)折纸
- 每天学一点flash(84) 翻转
- 每天学一点flash(7) Adobe Flash 的竞争意识
- 每天学一点flash(43) flash 3d 旋转
- 每天学一点flash(74) Flash搜索框
- 每天学一点flash(66) flash中Array数组的删除
- 每天学一点:(1)flash的简单加密
- C/C++易错总结
- 编程命名中的7+1个提示[CoolShell]
- 最长单调递增子序列
- uboot启动流程分析图
- LVS的工作原理和相关算法
- 每天学一点flash(82) jsfl 的swf窗口面板
- 看到一篇耶鲁大学培养人的文章,有感,转发
- Servlet , Servlet Mapping and Pattern the HTML
- 在VC++6.0中复制对话框
- Lazy.Lib系列 - 摄像头图像采集、录像
- C#数据结构和算法学习系列五----基础查找算法
- hdu 4023
- HDU 4033
- 如何调用远程web service