利用flash组件的List做界面,先从flash中拖出List组件,然后删除。绑定Main类。

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;
import fl.events.*; public class Main extends Sprite
{
private var loader:URLLoader;
private var xml:XML;
private var dp:DataProvider;
private var defaultJsfl:String; public function Main()
{
loader=new URLLoader();
loader.dataFormat=URLLoaderDataFormat.TEXT;
loader.addEventListener(Event.COMPLETE,onLoadComplete);
loader.load(new URLRequest("dt_tool_text/dt_config.xml"));
} private function onLoadComplete(event:Event):void
{
xml=XML(loader.data);
var len:int=xml.item.length();
defaultJsfl=xml.defaultJsfl;
var vesion:Version=new Version(this,xml.vesion);//设置版本信息
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.setStyle("cellRenderer", MyCellRenderer);
list.dataProvider=dp;
list.addEventListener(ListEvent.ITEM_CLICK, changeHandler);
list.width=300;
list.height=400;
list.rowHeight=30;
} private function changeHandler(event:ListEvent):void
{
var command:String=event.item.fun;
var isUse:int = event.item.isuse;//是否使用了其他jsfl
var jsflPath:String;
if(isUse==0)
{
doAction(command,"WindowSWF/dt_tool_jsfl/"+defaultJsfl+".jsfl");
}
else if(isUse==1)
{ jsflPath="WindowSWF/dt_tool_jsfl/"+event.item.fileName+".jsfl";
doAction(command,jsflPath); }else if(isUse==2)
{ jsflPath = "WindowSWF/dt_tool_jsfl/" + event.item.fileName+".jsfl";
var element_arr = event.item.element.split(",");
var element_str:String = "";
var elementLen_num:Number = element_arr.length;
if (elementLen_num == 1){
element_str = event.item.element;
}else{
for (var i:int = 0; i < element_arr.length; i++){
if (i == 0){
element_str += element_arr[i] + "\',";
}else if (i == element_arr.length - 1){
element_str += "\'" + element_arr[i];
}else{
element_str += "\'" + element_arr[i] + "\',";
}
}
} doActionByElem(command,jsflPath,element_str); }
else if(isUse==3)
{
jsflPath="WindowSWF/dt_tool_jsfl/"+event.item.fileName+".jsfl";
dofileCommand(jsflPath);
}
} //执行命令调用jsfl带参数
private function doActionByElem(command:String,path:String="",element:String=""):void
{ MMExecute("fl.runScript( fl.configURI + '" + path + "','" + command + "','" + element + "');");
trace("fl.runScript( fl.configURI + '" + path + "','" + command + "','" + element + "');");
} //执行命令调用jsfl
private function doAction(command:String,path:String=""):void
{ MMExecute("fl.runScript( fl.configURI + '"+path+"','"+command+"');");
} //执行整个jsfl文件
private function dofileCommand(path:String):void
{
MMExecute("fl.runScript( fl.configURI + '"+path+"')");
} } }

  

package
{
import fl.controls.listClasses.CellRenderer;
import fl.controls.listClasses.ICellRenderer;
import fl.controls.listClasses.ListData;
import flash.display.Shape;
public class MyCellRenderer extends CellRenderer implements ICellRenderer
{
private var m:Shape = new Shape();
public function MyCellRenderer()
{
addChildAt(m,0);
}
override public function set listData(value:ListData):void
{
super.listData = value;
m.graphics.beginFill(0xeeeeee,value.index%2);
m.graphics.drawRect(1,1,width-2,height-2);
m.graphics.endFill();
}
}
}

 

package
{ import flash.display.InteractiveObject;
import flash.ui.ContextMenu;
import flash.ui.ContextMenuItem; public class Version
{
public function Version(target:InteractiveObject,vesionInfo:String)
{
var menu:ContextMenu = new ContextMenu();
menu.hideBuiltInItems();
try
{
var str:String = vesionInfo;
var m:ContextMenuItem = new ContextMenuItem(str);
menu.customItems.push(m);
}
catch(error:Error)
{
throw new Error( error.message );
}
target.contextMenu = menu;
}
}
}

  

接下来就是配置xml表格(dt_config.xml):

<config>

   <defaultJsfl>otherJsfl</defaultJsfl>
<vesion>vesion:dt_1.1</vesion>
<root>
<item>
<label>[1] 发布文件夹下所有文件(as2 player 7) </label>
<element >2,7</element>
<fun >Init</fun>
<isuse>2</isuse>
<fileName>publish_dt </fileName>
</item>
<item>
<label>[1] 发布文件夹下所有文件(as3 player 9) </label>
<element >3,9</element>
<fun >Init</fun>
<isuse>2</isuse>
<fileName>publish_dt </fileName>
</item>
<item>
<label>[1] 发布文件夹下所有文件(as3 player 10.3) </label>
<element >3,10.3</element>
<fun >Init</fun>
<isuse>2</isuse>
<fileName>publish_dt </fileName>
</item>
<item>
<label>[1] 发布文件夹下所有文件(as3 player 11.1) </label>
<element >3,11.1</element>
<fun >Init</fun>
<isuse>2</isuse>
<fileName>publish_dt </fileName>
</item>
<item>
<label>[1] 发布文件夹下所有文件(as3 player 11.2) </label>
<element >3,11.2</element>
<fun >Init</fun>
<isuse>2</isuse>
<fileName>publish_dt </fileName>
</item>
<item>
<label>[1] 发布文件夹下所有文件(自定义) </label>
<element ></element>
<fun >definedInit</fun>
<isuse>2</isuse>
<fileName>publish_dt </fileName>
</item>
</root>
</config>

  

最后将发布的swf和对应的jsfl和xml放入对应的flash路径即可(即flash安装目录下的WindowSWF文件夹里):

C:\Users\Administrator\AppData\Local\Adobe\Flash CS6\zh_CN\Configuration\WindowSWF/

jsfl 生成flash 工具面板的更多相关文章

  1. Map工具系列-03-代码生成BySQl工具使用说明

    所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...

  2. [开源]C#二维码生成解析工具,可添加自定义Logo

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

  3. JAVA自动生成正则表达式工具类

    经过很久的努力,终于完成了JAVA自动生成正则表达式工具类.还记得之前需要正则,老是从网上找吗?找了想修改也不会修改.现在不用再为此烦恼了,使用此生成类轻松搞定所有正则表达式.赶快在同事面前炫一下吧. ...

  4. [开源]C#二维码生成解析工具,可添加自定义Logo (转)

    二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...

  5. FusionCharts生成Flash图表常见问题FAQ

    本文主要汇总了FusionCharts生成Flash图表时的一些常见问题(FAQ)以及解决方法/调试方法,欢迎交流! 问题描述:利用FusionCharts创建Flash图表时,能否直接从数组或rec ...

  6. Chrome开发者工具面板

    Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Network面板.Timeline面板.Profiles面板.Application面板.Sec ...

  7. Google开发者F12工具面板-network详解

    1 开发者工具面板    面板上包含了Elements面板.Console面板.Sources面板.Network面板.Performance面板.Memory面板.Application面板.Sec ...

  8. sphinx doc 文档生成脚手架工具

    sphinx 在python 语言开发中,是一个使用的比较多文档生成脚手架工具,我们帮助我们生成 专业的帮助文档,同时也有远端的免费saas 托管服务,方便分发 安装 sphinx 的安装好多方便,m ...

  9. Python自动生成代码工具

    项目中有一个需求,对一个基类而言,拥有一个比较方法和拷贝方法,某些地方需要频繁地对这两个方法进行调用.对于所有子类而言,需要重写这两个方法,并在其中维护类内一些成员变量.例如有一个变量m_iMyVal ...

随机推荐

  1. 单元素枚举类型singleton模块

    public enum Elvis { INSTANCE; public void leaveTheBuilding() { System.out.println("Whoa baby, I ...

  2. 解决 https urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] 错误

    import ssl ssl._create_default_https_context = ssl._create_unverified_context

  3. JavaScript for...in 循环

    JavaScript for...in 语句循环遍历对象的属性. 语法 for (对象中的变量) { 要执行的代码 } 注释:for...in 循环中的代码块将针对每个属性执行一次. 实例 循环遍历对 ...

  4. centos6.5制作OpenStack云平台Windows7镜像

    # yum install virt-manager libvirt qemu-img virt-viewer -y # vi /etc/libvirt/qemu.conf # service lib ...

  5. 使用SecureCRT软件运维的配置习惯

    使用 SecureCRT 软件运维的配置习惯 作者:Eric 微信:loveoracle11g 选项--->全局选项 配置文件存放路径 默认CRT配置的配置文件在C盘 常规--->默认会话 ...

  6. U3D学习004——核心类和代码运行

    1.U3D核心类 2.变量 只有public变量才可以显示在inspector面板中,[serializeField]可以使private和protected变量显示在inspector面板中. 3. ...

  7. Shiro Realm

    Realm: 在实际应用中,shiro从数据库中获取安全数据(如用户.角色.权限),而不是从ini中,可作为安全数据源 即SecurityManager要验证用户身份,那么它需要从Realm获取相应的 ...

  8. Delphi2010/XE2下隐藏程序系统任务栏的图标

    Delphi7代码: SetWindowLong(Application.Handle,GWL_EXSTYLE,WS_EX_TOOLWINDOW); 以上的代码在Delphi7中可以用,但是在Delp ...

  9. python函数的创建和函数参数

    [1]#函数的作用:1.减少重复代码 2.方便修改,更容易扩展3.保持代码的一致性 [2]#函数简单的定义规则: 函数代码块以def关键词开头,后接函数标识符名称和圆括号(),任何传入参数和自变量必须 ...

  10. centos7 安装Node.js并配置为全局可用

    本文Node.js版本为5.12.0,登录 https://nodejs.org/dist/v5.12.0/,需指定其他版本的话可以直接修改版本号进行登录. 为了方便使用tar命令对文件进行解压,我们 ...