利用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. 匿名内部类访问方法成员变量需要加final的原因及证明(转)

    https://blog.csdn.net/wjw521wjw521/article/details/77333820 在java编程中,没用的类定义太多对系统来说也是一个负担,这时候我们可以通过定义 ...

  2. json--处理框架

    1.Android 中的Json解析工具fastjson .序列化.反序列化 2.Android Gson的使用总结 可以处理含有内部类的类,或包含集合内部类的类: 3.Android-JSONToo ...

  3. Jmeter(九)JDBC连接池

    JDBC为java访问数据库提供通用的API,可以为多种关系数据库提供统一访问.因为SQL是关系式数据库管理系统的标准语言,只要我们遵循SQL规范,那么我们写的代码既可以访问MySQL又可以访问SQL ...

  4. MySQL 之管理脚本

    Mysql中查看每个IP的连接数 ) as ip , count(*) from information_schema.processlist group by ip;

  5. MySQL 之mydumper安装详解

    方法一: 安装依赖包: 1 yum install glib2-devel mysql-devel zlib-devel pcre-devel openssl-devel cmake make 下载二 ...

  6. OpenJudge 兔子与樱花

    [题解] 求任意两点间的最短路径.此题数据量较小,用Floyd算法,时间复杂度为O(n^3). 参考https://blog.csdn.net/qq_34594236/article/details/ ...

  7. 3-自己动手写HashMap 增加哈希算法

    public class HashMap { //存储元素数组 private Entry[] entry = null; //记录map个数 private int size; //构造器 publ ...

  8. openstack cpu pinning

    为了减少CPU竞争,提高CPU cache命中率,可以把guest的vcpu pin到host的物理CPU上. 在openstack中,可以添加以下到flavor extra specs: hw:cp ...

  9. RecyclerView拖拽排序;

    效果就是这样,RecyclerView列表可拖拽排序,可删除,可添加: RecyclerView给我们提供了一个手势器: ItemTouchHelper helper = new ItemTouchH ...

  10. CentOS网络设置 couldn't resolve host 'mirrorlist.centos.org问题解决

    在VBox上安装完CentOS6.5之后,首次使用时yum命令安装软件时,经常遇到"couldn't resolve host 'mirrorlist.centos.org"这个问 ...