利用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. Ajax的总结

    1.运行Ajax的环境,在服务器上才可以实现他的功能,客户端等别的地方,虽然也可以运行,但是功能一定是不全的,有可能很多东西都不会发生反应: 2.传参 (只写关键步骤)  (必须在服务器上运行) ge ...

  2. 编码(encode和decode)

    一. 编码 1. ASCII编码 ASCII是最早的计算机编码,包含了英文字母(大小写),数字,标点等特殊符号,一共128个码位,最多只能用8位来表示(一个字节),ASCLL码最多256个位置,无法提 ...

  3. [UE4]GameMode、GameInstance、GameState、PlayerState、PlayerController

    一.只有PlayerController和Pawn/Character才有输入事件(键盘.鼠标等等),PlayerState没有输入事件. 二.对于需要跨域关卡的数据信息,根据上图所知需要放到Game ...

  4. [UE4]Transform镜面翻转

  5. Composer 安装时要求输入授权用户名密码

    composer require "overtrue/laravel-socialite:~2.0" Authentication required (packagist.phpc ...

  6. sas 基础(1)-关于数据格式的SAS函数

    (一)字符转换: 1)字符型转换成数值型 Numvar=INPUT(source,informat) 2)数值型转换成字符型 Chavar=PUT(source,format) (二)字符型变量的处理 ...

  7. 第11课 std::bind和std::function(2)_std::bind绑定器

    1. 温故知新:std::bind1st和std::bind2nd (1)bind1st.bind2nd首先它们都是函数模板,用于将参数绑定到可调用对象(如函数.仿函数等)的第1个或第2个参数上. ( ...

  8. Oracle数据库类型

    Oracle数据库类型 字符类型char[(length)] 定长字符 最长2000字节varchar2[(length)] 可变长度的字符数据类型,最长4000字节NCHAR[(length)] 固 ...

  9. Windows把内存变成快速虚拟硬盘

    笔记本电脑安装了8G内存,却装了个Win7 32位系统,结果只能识别2946MB内存,还有5GB多内存白白浪费了,那个闹心啊,别提多不爽,听说能把内存虚拟成硬盘使用,用它缓存系统临时文件,以及缓存网页 ...

  10. nginx安装环境

    1 nginx安装环境 nginx是C语言开发,建议在linux上运行,本教程使用Centos6.5作为安装环境. n gcc 安装nginx需要先将官网下载的源码进行编译,编译依赖gcc环境,如果没 ...