jsfl 生成flash 工具面板
利用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 工具面板的更多相关文章
- Map工具系列-03-代码生成BySQl工具使用说明
所有cs端工具集成了一个工具面板 -打开(IE) Map工具系列-01-Map代码生成工具说明 Map工具系列-02-数据迁移工具使用说明 Map工具系列-03-代码生成BySQl工具使用说明 Map ...
- [开源]C#二维码生成解析工具,可添加自定义Logo
二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...
- JAVA自动生成正则表达式工具类
经过很久的努力,终于完成了JAVA自动生成正则表达式工具类.还记得之前需要正则,老是从网上找吗?找了想修改也不会修改.现在不用再为此烦恼了,使用此生成类轻松搞定所有正则表达式.赶快在同事面前炫一下吧. ...
- [开源]C#二维码生成解析工具,可添加自定义Logo (转)
二维码又称 QR Code,QR 全称 Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的 Bar Code 条形码能存更多的信息,也能表示更多的数据类型:比如:字 ...
- FusionCharts生成Flash图表常见问题FAQ
本文主要汇总了FusionCharts生成Flash图表时的一些常见问题(FAQ)以及解决方法/调试方法,欢迎交流! 问题描述:利用FusionCharts创建Flash图表时,能否直接从数组或rec ...
- Chrome开发者工具面板
Chrome开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Network面板.Timeline面板.Profiles面板.Application面板.Sec ...
- Google开发者F12工具面板-network详解
1 开发者工具面板 面板上包含了Elements面板.Console面板.Sources面板.Network面板.Performance面板.Memory面板.Application面板.Sec ...
- sphinx doc 文档生成脚手架工具
sphinx 在python 语言开发中,是一个使用的比较多文档生成脚手架工具,我们帮助我们生成 专业的帮助文档,同时也有远端的免费saas 托管服务,方便分发 安装 sphinx 的安装好多方便,m ...
- Python自动生成代码工具
项目中有一个需求,对一个基类而言,拥有一个比较方法和拷贝方法,某些地方需要频繁地对这两个方法进行调用.对于所有子类而言,需要重写这两个方法,并在其中维护类内一些成员变量.例如有一个变量m_iMyVal ...
随机推荐
- JavaScript for...in 循环
JavaScript for...in 语句循环遍历对象的属性. 语法 for (对象中的变量) { 要执行的代码 } 注释:for...in 循环中的代码块将针对每个属性执行一次. 实例 循环遍历对 ...
- AWS机器学习初探(2):文本翻译Translate、文本转语音Polly、语音转文本Transcribe
AWS机器学习初探(1):Comprehend - 自然语言处理服务 这几个服务的功能和使用都很直接和简单,因此放在一篇文章中介绍. 1. 文本翻译服务 Translate 1.1 功能介绍 AWS ...
- 廖雪峰Java1-3流程控制-4switch多重选择
switch语句 根据switch(表达式)跳转到匹配的case结果,继续执行case结果: 的后续语句,遇到break结束执行,没有匹配条件,执行default语句. int i = 3 switc ...
- 网站首页多URL可访问,如何集中首页网站权重?
原文地址:http://ask.seowhy.com/question/8573 百度站长平台Lee在文章<建立符合搜索引擎抓取习惯>一文中提出:唯一性网站中同一内容页只与唯一一个url相 ...
- [UE4]世界坐标、本地坐标
本地坐标 世界坐标
- 虚幻4:2D游戏中实现二级或多级跳跃
转自:http://www.52vr.com/article-729-1.html 闲来无事,想做个二级跳跃或者多级跳跃的方法.. 如下所示.即可实现. 第一步:角色蓝图中.设置跳跃事件 第二部: ...
- 数据迁移_老集群RAC迁移数据恢复到新集群RAC
数据迁移_老集群RAC迁移数据恢复到新集群RAC 作者:Eric 微信:loveoracle11g 1.把老集群RAC备份的数据远程拷贝到新集群RAC [root@old-rac-node1 ~]# ...
- 第11章 拾遗1:网络地址转换(NAT)和端口映射
1. 网络地址转换(NAT) 1.1 NAT的应用场景 (1)应用场景:允许将私有IP地址映射到公网地址,以减缓IP地址空间的消耗 ①需要连接Internet,但主机没有公网IP地址 ②更换了一个新的 ...
- 使用LVS实现负载均衡原理及安装配置详解(转)
负载均衡集群是 load balance 集群的简写,翻译成中文就是负载均衡集群.常用的负载均衡开源软件有nginx.lvs.haproxy,商业的硬件负载均衡设备F5.Netscale.这里主要是学 ...
- (转)C#读写共享文件
原文地址:https://www.cnblogs.com/guohu/p/4694515.html using System; using System.Collections.Generic; us ...