搜档网
当前位置:搜档网 › Flex常见问题及解决办法

Flex常见问题及解决办法

Flex常见问题及解决办法
Flex常见问题及解决办法

Flex常见问题及解决办法

杨永耀,陈兵

北京北科博研科技有限公司

摘要:本文主要对Flex运用过程中几个常见问题的现象和解决办法进行说明,常见问题包括

1: Flex与ExtJs交互,切换tabpanel时导致事件和方法丢失

2: Flex嵌入切换到HTML中焦点不能输入中文

3: Flex数据异步加载和FLEX本身加载顺序控制

4: Flex嵌入到HTML中遮盖DIV的问题

关键词:Flex,ExtJs,事件丢失,中文输入,遮盖,异步加载

1.Flex与ExtJs交互,切换tabpanel时事件和方法丢失

我的flex封装文件是嵌入在extjs的tabpanel的一个tab中,当第一次打开该页面的时候,可以调用到ExternalInterface注册的方法,如果我切换到其他的tab然后再回到该页面,那么注册的方法就为null了。

也就是说操作完flex的东西,再切换tab后,flex中注册过的方法和监听事件都丢失了。

另外如果在多个页签中有多个tabpanel时,各个页签中的FLEX对象会出现互相卡死现象。

解决方法1:

重新注册flex中的方法和监听事件

解决方法2:

如果你点击flex里的内容怎么切换都没问题,只要操作过flex中的内容,在做tab切换,就会发现注册过的方法和监听事件都丢失了。

在切换tab前,可以把焦点从flex中移走,比如

contentTabPanel.on("beforetabchange",function(tabPanel,tab){

document.body.focus();

})

2.Flex嵌入切换到HTML中焦点不能输入中文

当焦点置于Flash后再切换到HTML元素中如HTML的INPUT输入框中,不管怎么切换我们的输入法,中文就是出不来。其实这算是Flash的一个BUG。

通过翻阅了FlexAPI相关函数时,发现flash.system.Capabilities参数组。

flash.system.Capabilities中有个是查看系统的输入法Capabilities.hasIME:[只读] 指定系统是否安装了输入法编辑器(IME),如果是,则为true,否则为false。服务器字符串为IME。

当我们焦点进入到Flash时我们的IME.enabled属性直接被Flash禁用,IME.enabled值变为false 这也就是当我们为什么焦点放在HTML的元素中,无论如何切换输入法就是不管用的原因。

首先对Flash主程序进行事件监听用到这个事件MouseEvent.ROLL_OUT:

用户将指针设备从InteractiveObject实例上移开时分派。事件目标是指先前在指针设备下的对象或该对象的父级。relatedObject是将指针设备向其移动的对象。在该对象的父级链以上连续分派rollOut事件,以该对象为开头,并以除relatedObject的根或始祖之外的最高级别的父级结束。

rollOut事件的目的是简化带有子级的显示对象容器的移开行为的编码。当鼠标离开显示对象区域或任何其子级区域并转到除其子级以外的对象时,显示对象分派rollOut事件。这是与mouseOut事件行为不同的行为,因为该事件是在每次鼠标离开显示对象容器的任何子对象区域时才会被分派,即使鼠标仍保留在显示对象容器的另一个子对象上也是如此。

当光标离开Flash时手动设置输入法开启代码如下

appGroup.addEventListener(MouseEvent.ROLL_OUT, setSRF);

/**

* 当光标离开Flash时开启设置系统的输入法

* */

private function setSRF(event:MouseEvent):void{

if(Capabilities.hasIME){ //安装了输入法编辑器

try{

if(!IME.enabled){

IME.enabled=true;

}

IME.conversionMode="CHINESE";

}catch(error:Error){

}

}

}

3.Flex数据异步加载和FLEX本身加载顺序控制

当Flex比较大,本身加载比较慢,而同时数据采用通过JS进行异步加载和交互时,就会出现Flex还没有加载完成,就出现数据装载而找不到Flex对象。当然采用同步加载的方式也可以解决问题,但不利就是用户感受不是很好。

解决办法就是在Flex加载完成之后处罚相关JS标准事件,这样就能解决相关问题。

如下JS代码

functionChildrenRefresh(baseparams,initparams){

swfobject.embedSWF(REQUEST_CONTEXTPATH

+ '/rfs/flex/WaterLineKGraph.swf', 'caliChartFlashDiv',

'100%', '100%', '9.0.0', false, flashvars, params, attributes);

bp = baseparams;

if (baseparams.viewCode) showGraph();

}

watfChart.id = 'chartId';

var flashvars= {

'loading' : '【水位流量关系曲线图】',

'wmode' : 'transparent',

'menu' : false,

'getData': 'showGraph'

};

如FLEX中发现有'getData' : 'showGraph'时,在装载完成之后触发该函数,并提示数据开始装载,这样用户感受和效果会比较好。

functionshowGraph() {

if (!bp.viewCode) r eturn;

Watf.maskTopMsg('正在查询' , 'green');

Ext.Ajax.request({

method : 'POST',

url : REQUEST_CONTEXTPATH + '/watf/waterRegimeg.do?',

params :Ext.urlEncode({

viewCode :bp.viewCode,

note :bp.note,

name : https://www.sodocs.net/doc/aa12889727.html,,

thmcd :bp.thmcd,

fthmcd :bp.fthmcd

}),

success : function(res, options) {

varrespText = Ext.util.JSON.decode(res.responseText);

if(respText&&respText.data&&respText.data.length>= 1) {

watfChart.watfChartNew(respText);

Watf.unmaskTopMsg('查询成功', 'green', 600);

}else {

Watf.unmaskTopMsg('没有数据', 'green', 1500);

}

},

failure : function(res, options) {

Watf.unmaskTopMsg('查询出错了', 'red', 1500);

}

});

}

4.Flex嵌入到HTML中遮盖DIV的问题

默认情况下如果Flash被嵌入到Web页面中,则SWF文件默认被置于所有HTML元素的顶层渲染级别的。类似在所有html元素的总父容器上一层,无法被任何html元素遮挡。无论怎么设置flash容器和层的深度(z-index)也无济于事。

遇到这个问题我们可以在插入flash的embed或object标签中加入“wmode”属性并设置为wmode=“transparent”或”opaque”在Flex4中默认的HTML包围容器的方式变了如代码:

这时我们可以在上面的params中加

params.wmode = "opaque";或者

params.wmode = "transparent";

相关属性含义如下:

●window 模式

默认情况下的显示模式,在这种模式下flash player有自己的窗口句柄,这就意味着flash 影片是存在于Windows中的一个显示实例,并且是在浏览器核心显示窗口之上的,所以flash 只是貌似显示在浏览器中,但这也是flash最快最有效率的渲染模式。由于他是独立于浏览器的HTML渲染表面,这就导致默认显示方式下flash总是会遮住位置与他重合的所有DHTML 层。

但是大多数苹果电脑浏览器会允许DHTML层显示在flash之上,但当flash影片播放时会出现比较诡异的现象,比如DHTML层像被flash刮掉一块一样显示异常。

●Opaque 模式

这是一种无窗口模式,在这种情况下flash player没有自己的窗口句柄,这就需要浏览器需要告诉flash player在浏览器的渲染表面绘制的时间和位置。这时flash影片就不会在高于浏览器HTML渲染表面而是与其他元素一样在同一个页面上,因此你就可以使用z-index值来控制DHTML元素是遮盖flash或者被遮盖。

●Transparent 模式

透明模式,在这种模式下flash player会将stage的背景色alpha值将为0并且只会绘制stage上真实可见的对象,同样你也可以使用z-index来控制flash影片的深度值,但是与Opaque模式不同的是这样做会降低flash影片的回放效果,而且在9.0.115之前的flash player 版本设置wmode=”opaque”或”transparent”会导致全屏模式失效。

Flex面试题

一次阴差阳错,让我去了一家做Flex公司面试.我是搞JAVA开发,他却发了关于Flex的试题.因为自己自学过Flex,试题就看了一遍,感觉很基础.从试题中我也感觉到Flex以后真的很有前途.呵呵以下是试题和答案.大家可以学习下 1.使用Flex Bulider3建立一下新的.mxml的页面时默认的背景是蓝色的,请问 用什么办法能修改掉此背景颜色,以至于下次创建时背景不是为默认的蓝色的 呢?请写出你认为正确的方法. 答:修改sdk\frameworks\projects\framework\default.css里Application 的 backgroundColor: #0000FF; 2.使用Flex Bulider3如何跟踪程序? 答:我知道的三种1.trace() 2.设置断点 3.当不在调试模式时可以调用as的 Alert.show()或js的alert() 如:navigateToURL(new URLRequest ("javascript:alert(traceMsg)"), "_self"); 3.请问enterFrame和timerEvent这2个事件有什么区别?请说下具体的使用方法 和相关的使用场合? 没接触过,待学习中 4.请说下你理解AS3的事件机制是什么机制?你认为正确的就可以说出来. 答:从应用程序到最外层的容器在到容器里的组件或容器遍历注册的事件,然 后按照原路返回冒泡响应事件 5.请问addEventListener里面有几个参数,你能说出具体的使用方法嘛? 答:只用过前4个,参数分别为:Event名称,响应(回调)函数,是否冒泡时 响应,Event级别 6.请问我想判断一个字体是否是数字,用什么办法去判断呢? 答:isNaN(parseInt(strPara) 或 strPara is Number 7.请问我想判断一个字符或者一个对象的类型怎么判断呢? 答:typeof(obj) 8.请问你了解 internal 控制符么?能说下具体使用方法和场合嘛? 答:同一个包里才能调用internal所定义的变量或对象

Flex3.0面试题

1.as2与as3.的最主要区别是什么? 答:首先,as2和as3是完全不同的语言,几乎没有兼容性可言。as2编译用的AVM1虚拟机,as3用的AVM2,速度快,提供了一些基础异常处理。 as3是纯的OOP,强类型语言。as2不是。具体的差别有太多太多。 2.flex的开发框架有哪些,它们有什么优缺点? 答:最常见的当然是Cairngorm、Puremvc了,此外还有Mate,Swiz等等,据说被广泛应用的已经有10几款了。Cairngorm作为Adobe官方出品,有着贵族血统的它比较全面,是这些框架中已知bug最少的,但是基于他的应用相对臃肿复杂一些,需要对每个可以被触发的事件写一个对应的Command,编码量巨大,并且单元测试很不容易,不适合敏捷开发。Puremvc应该是现在用的最多的as 框架了。比较完善、并且与Cairngorm相比,更适合中小型应用的开发,它与Cairngorm一样,也是以MVC模式为中心,并以Fa?ade作为中央存储器的单件类的形式进行开发的。说下Mate,它是一个比较奇怪的框架,是基于标签的事件驱动型的。也就是说你不能再随意的写as类的,在使用Mate的情况下,只能用MXML来做这些事情。Swiz是Mate的孪生兄弟,长的挺像,没具体用过,不大了解。 3.在flex开发中,很多代码都写在mxml文件里,为了做到mvc模式,你是怎么处理的。 我认为mxml并不影响mvc模式啊。分两种情况来讨论,首先,是自己创建整个应用结构的时候,那我们可以手动将UI所在的mxml归为一类,然后由Mediator去操作或者说控制这些组件既可了,然后Mediator又统一交给Controller去操作。如果采用其他框架来进行开发的话,那就更不用来考虑这个问题了,像Cairngorm、Puremvc之类的框架已经很好的为我们解决了这些问题。只要按照它们的使用规范来进行开发,自然没有问题。 4.如果发生内存泄露,你是如何解决的? 在profile观察中已经内存泄漏是没有很好的解决办法的,至少我不知道,我能做的只是尽量去避免这种情况的发生,比如说注意不要循环引用,特别是在使用Timer的时候要格外注意,不要忘记全局对象上的引用的清除,在创建控制器和模型的时候要注意一定要使用单件模式。在addEventListener时候尽量采用弱引用、自引用、或者子对象引用,以避免内存泄漏。 5。as3.0垃圾回收器是如何工作的? flash player 8之前采用的是引用计数法,在flash player 8 之后用的是标记法,简单的说就是:从应用的根节点开始,遍历所有其上的引用,标记每个它所发现的 对象。然后迭代遍历每个被标记的对象,标记它们的子对象。这个过程第归进行,直到Player遍历了应用的整个对象树并标记了它所发现的每个东西。在这个过

自定义Flex的loading启动加载画面

想起当年学flash的时候,最先学的就是做loading ,哈哈,成天做loading,那几行代码和那几个步骤全都背下来了。 自从来到了高级的Flex时代,loading全都自动生成了真是方便,但天天看Flex的Loading画面难免会有点审美疲劳, 所以花了点时间研究了一下怎么自己画Flex的loading画面。 点此演示 时间关系,我只简单的画了一下,这里是fla ,其实你想怎么画都可以 主要代码: 自定义的Preloader: package { import flash.display.MovieClip; import flash.display.Sprite; import flash.events.Event; import flash.events.ProgressEvent; import mx.events.FlexEvent; import mx.preloaders.IPreloaderDisplay; import mx.preloaders.Preloader; public class nPreloader extends Sprite implements IPreloaderDisplay { [Embed(source="mc.swf", symbol="loader_mc")] private var LoaderMC:Class; private var _loader_mc:MovieClip private var _preloader:Preloader; public function nPreloader() { super(); this._loader_mc = new LoaderMC() this.addChild(this._loader_mc); this._loader_mc.gotoAndStop(50) } public function get backgroundAlpha():Number { return 0;

flex学习笔记3HttpService

Flex学习笔记3之HttpService与DataGrid 1.Flex中对于通过HttpService来进行数据通信进行了良好的封装。 2.下面用一个例子来解释Flex中对于HttpService是如何应用的。 3.Demo4 注意:这里的employees.xml只是模拟一个远程客户端调用的过程。 文件内容如下:

5.下面启用Flex的debug模式来执行调试。程序调试界面 发现了原来在FlexDemo4.mxml文件

Result下面发现了Flex已经读取了employees.xml的所有内容 备注:实质上是将xml的信息存放到了一个集合中。 6.补充:将xml结果输出到DataGrid中 将会用到这个标签 执行程序后的结果。

7.小结 (1)ObjectProxy类 继承自Proxy- Object 该类提供跟踪对此代理管理的项目进行的更改的功能。任意数量的对象都可通过使用addEventListener()方法“侦听”对该对象的更改。 于此同时employeesService其实是这个类mx.rpc.http.mxml.HTTPService (2)HttpService类 在MXML 文件中使用标签代表HTTPService 对象。当调用HTTPService 对象的send()方法时,将发出对指定URL 的HTTP 请求,并且返回HTTP 响应。可以选择向指定URL 传递参数。如果没有使用基于服务器的代理服务,则只能使用HTTP GET 或POST 方法。如果将useProxy 属性设置为true 并使用基于服务器的代理服务,则还可以使用HTTP HEAD、OPTIONS、TRACE 和DELETE 方法。 (3)ArrayCollection类 ArrayCollection 类是将Array 公开为集合的封装类,可使用ICollectionView或IList接口的方法和属性进行访问和处理。对ArrayCollection 实例进行操作会修改数据源;例如,如果对ArrayCollection 使用removeItemAt()方法,就会删除基础Array 中的项目。

flex各种用法

//获得屏幕的分辨率 var x:Number=Capabilities.screenResolutionX; var y:Number=Capabilities.screenResolutionY; Alert.show("x="+x+"y="+y); //第二种方法 Alert.show(stage.fullScreenWidth+"=="+stage.fullScreenHeight); //在Flex中获取当前窗口的长度与宽度使用下面的方法: var w = Application.application.width; var h = Application.application.height; //绝对定位TitleWindow var myTitleWindow:MyTitleWindow= MyTitleWindow(PopUpManager.createPopUp(DisplayObject(Application.application),MyTitleWin dow,true)); myTitleWindow.x = (w-myTitleWindow.width)/2; myTitleWindow.y = 100; //获得stage(工作区)的宽、高 Alert.show(stage.stageWidth+"=="+stage.stageHeight); //读取xml文件 private function readxml2():void { var urlrequest:URLRequest=new URLRequest("file/stu.xml"); var urlloader:URLLoader=new URLLoader(urlrequest); urlloader.addEventListener(https://www.sodocs.net/doc/aa12889727.html,PLETE, completehandler); } private function completehandler(event:Event):void { var xml:XML=new XML(event.target.data); // var arr:Array=new Array(xml); this.dg.dataProvider=xml.children(); this.tree.dataProvider=xml; this.cb.dataProvider=xml.children(); // this.hlist.dataProvider=xml.children(); } //flex 获得系统路径 var add:String=ExternalInterface.call("window.location.href.toString",1); Alert.show(add); //背景颜色不断变化 private function changeBG():void{ var mytime:Timer=new Timer(2000); mytime.addEventListener(TimerEvent.TIMER,changHandle);

FlexPaper实现文档在线浏览

FlexPaper实现文档在线浏览(附源码) 园子里也有关于FlexPaper的文章,但都不怎么详细。 没有较全的参数说明。就连官方网站都没有。没法,最后只得将swf文件反编译后查看了源码才将里面的参数全部弄出来。 好了,废话不多说,开始正题。 1.概述 FlexPaper是一个开源轻量级的在浏览器上显示各种文档的组件,被设计用来与PDF2SWF一起使用,使在浏览器中显示PDF成为可能,而这个过程并无需PDF软件环境的支持。 另外也可以通过将一些例如Word、PPT等文档转成PDF,然后实现在线浏览。 2.实现步骤 文档(PDF,Word,PPT等) ----> 转换为SWF -----> 使用FlexPa在线浏览2.1.转换SWF 需要使用一个工具,SwfTools,目前最新版本是0.9.1; 下载地址 可以使用命令行将文件转换为swf文件; 例如将Paper3.pdf转换成Paper3.swf的命令为: C:\SWFTools\pdf2swf.exe Paper3.pdf -o Paper3.swf 与之对应的程序实现方法:(C#) Process pc = new Process(); ProcessStartInfo psi = new ProcessStartInfo(“C:\\SWFTools\\pdf2swf.exe”,“P aper3.pdf Paper3.swf”); pc.StartInfo = psi; pc.Start(); pc.WaitForExit(); 更多关于SwfTools命令的说明可点这里下载说明文档。 2.2.浏览器中浏览 首先要下载Flexpaper,目前最新版本为1.4.0 ; 下载地址 下载后解压到网页目录中。 在页面中使用以下代码即可实现Swf文档的浏览。

Flex教程

Jquery flexigrid使用 相关技术:struts2.1.6+spring+hibernate+jquery+flexigrid+thickbox+mysql 主要的js文件:jquery.js,flexigrid.js,query.js,thickbox.js,util.js 其中: util.js是扩展flexigrid的功能,如条件查询用到的getQuery属性。query.js是自定义的flexigrid界面显示和函数触发文件。 Jar包:

使用过程: Struts2 jar只能用 2.1.6,web.xml中配置: struts-tags /WEB-INF/lib/struts2-core-2.1.6.jar 用struts2-core-2.0.14会报错: org.apache.jasper.JasperException: Unable to initialize TldLocationsCache: null

Jsp页面: 引入jquery、flexigrid插件文件以及test.js,body中编写:

在js文件中使用flexigrid创建页面: $(document).ready( function() { $("#grid").flexigrid( { // url :'jsp/query/json.json', url : 'getPaginationAction.action', dataType :'json', colModel : [ { display :'编号', name :'id', width :60, sortable :true, align :'center' }, { display :'姓', name :'firstname', width :120, sortable :true, align :'left' }, { display :'名', name :'lastname', width :120, sortable :true, align :'left' }, { display :'操作', name :'opt', width :120, sortable :true, align :'left', process :operate } ], searchitems : [ {

FLEX学习心得

FLEX学习心得 1,开发webgame你所要具备的 一、数据结构、设计模式、框架应用、良好的OO思想。 二、对socket/amf/remoting/shareobject/webservice等了解 三、各开源库(PV3d,Box2d等),但一般做策略型webgame不太需要,策略型webgame关注的是第一点 如果想做做小游戏,可看 make thing move之后看AdvancED_ActionScript 3.0 2,基于socket连接的安全沙箱问题的处理 https://www.sodocs.net/doc/aa12889727.html,/xuxiangwin/archive/2009/07/07/4324218.aspx 大概就这个,但是我这里始终不行,有待后续补充 补充:https://www.sodocs.net/doc/aa12889727.html,/club/thread-6471-1-5.html 3,FLEX解析XML的2种方式。有表情 https://www.sodocs.net/doc/aa12889727.html,/blog/381820 4,FLEX控件样式和控件的使用 1).不知道控件有什么样式设置?看它:https://www.sodocs.net/doc/aa12889727.html,/flex3/consulting/styleexpl orer/Flex3StyleExplorer.html 2).有控件不知道怎么用?看它:https://www.sodocs.net/doc/aa12889727.html,/flex3/componentexplorer/explorer. html 5,FLEX中文例子 https://www.sodocs.net/doc/aa12889727.html,/ 6,AIR的创建发布安装教程 https://www.sodocs.net/doc/aa12889727.html,/AIR/thread-2727-1-1.aspx 7,Adobe AIR 迷你教程-- 监测网络状态,离线/在线应用程序的实现 https://www.sodocs.net/doc/aa12889727.html,/Share/thread-2731-1-1.aspx 8,FLEX 45°视角游戏地图编辑器 https://www.sodocs.net/doc/aa12889727.html,/club/thread-3334-1-1.html 9,RGP游戏基础45地图寻路和地图切换完整例子 https://www.sodocs.net/doc/aa12889727.html,/club/viewthread.php?tid=2286&page=1#pid6532

flex system (CMM 配置指南)

精心整理CMM使用 IP: 默认用户名:USERID 默认密码:P@ssw0rd 管理页面 输入、及用户名密码

初始页面(可以看到前后视图及部件状态) 系统组件 任意选取一台服务器或者部件查看详细信息(日志、详细配置、微码),先看下CPU 内存信息(可以显示哪些槽位有内存、每条内存的大小) 系统信息 Multi-ChassisMonitor 事件 导出日志 保存日志 Servicesandsupport 问题反馈 Setting 机箱管理 chassis Airflow Identification下可以设置计算机的名称之类、不太常用。

Handwareactivity下可以查看当前所有激活的服务器及模块。 Temperture可以查看当前的温度(满配20.50度) 还可以选择某一时间段温度的变化情况。 AIRFLOW 节点控制 当前服务器列表及状态,选择Action-->lunchcomputernod econsole 弹出如下JAVA提示框,问啥都要继续了 然后跳转到该节点的IMM远程控制页面 提供两种远程模式、UsetheActiveXClient /UsetheJavaClient任选其一、单用户及多用户模式根据实际情况选其一。根据本机的情况使用,建议使用java方式. 又要提示、照例继续。 在上图点击RUN后终于弹出服务器控制窗了 我们来看看菜单有啥、第一项FILE只有一个capturefile帮助大家来抓图 第二项view主要是帮大家设置显示效果、色彩、全屏之类 第三项macros主要是各种组合键、相当齐全、还嫌不够的话就自己选择softkey去ADD吧。 第四项TOOLS是最常用的、电源开关、远程虚拟介质都在此列,还可以选择launchRD直接转为远程桌面. 加载虚拟介质步骤 选择ADDIMAGE、直接选取笔记本中ISO、Serverguide或者2008(没有! 回家洗洗睡吧、兄弟) 选择好ISO还得点击下mountselected,点开Details可以看到介质已经在读取了。

LR常见报错及解决的办法

LR常见报错及解决的办法 1、LoadRunner26377、26388错误码的成因 脚本如下: 脚本的是请求下载,如果是三个cot请求,就不会有错,我现在是有10个cot请求,从"objectURI4"就提示以下错误信息,请大有帮忙解决一下。谢谢 错误码如下: Error-26377:No match found for the requested parameter"objectURI10".Check whether the requested boundaries exist in the response data.Also,if the data you want to save exceeds1516000 bytes,use web_set_max_html_param_len to increase the parameter size[MsgId:MERR-26377] web_url("entry")highest severity level was"ERROR",1631body bytes,199header bytes[MsgId: MMSG-26388] 1.首先看下脚本中有没有使用了自动关联(web_reg_save_param) 2.在Virtual的脚本里查询下web_reg_save_param的参数使用位置,然后把这个参数化给还原回来,比如

web_reg_save_param("Siebel_Analytic_ViewState2",............然后就在全文查询 Siebel_Analytic_ViewState2 3,至于修改成什么东西要看几个地方,如果是启动了自动关联,一般在脚本上面会有一段被自动注释掉的:关联变量名="值"比如上面的Siebel_Analytic_ViewState2大概就是 //{Siebel_Analytic_ViewState2} ="/wEPDwUKMTI5Nzk1OTc3NmRkikSkNLllgC5BL8dbmU5bHIwtt4I=" 那么这里的/wEPDwUKMTI5Nzk1OTc3NmRkikSkNLllgC5BL8dbmU5bHIwtt4I=就是要找的值了,这个也可以在"View Tree"里找到 4.把"View script"里的被关联的那部分参数改成 /wEPDwUKMTI5Nzk1OTc3NmRkikSkNLllgC5BL8dbmU5bHIwtt4I=就好了(不是修改web_reg_save_param里的参数,要把它注释掉,从下面正文里查询另一个带Siebel_Analytic_ViewState2的东东,把它改掉) 把web_set_max_html_param_len(50000)值加大 这个函数要放在所有参数化前面。 2、录制时无法弹出IE,google一下,解决办法如下 l主要是LR的注册信息被修改,无法找到IE路径。如何重新注册LR呢?在lr的安装目录(例如D:/Program Files/Mercury/LoadRunner/bin)下,单击register_vugen.bat文件,注册信息被重新改写了。不过别忘了最后一步。重新启动一下,好了; l有多个浏览器时,将IE置为默认浏览器;由于IE的第三方插件的影响,IE工具-》Internet选项…-》高级,把“启用第三方浏览器扩展”的选中去掉即可;

Flex常见问题及解决办法

Flex常见问题及解决办法 杨永耀,陈兵 北京北科博研科技有限公司 摘要:本文主要对Flex运用过程中几个常见问题的现象和解决办法进行说明,常见问题包括 1: Flex与ExtJs交互,切换tabpanel时导致事件和方法丢失 2: Flex嵌入切换到HTML中焦点不能输入中文 3: Flex数据异步加载和FLEX本身加载顺序控制 4: Flex嵌入到HTML中遮盖DIV的问题 关键词:Flex,ExtJs,事件丢失,中文输入,遮盖,异步加载 1.Flex与ExtJs交互,切换tabpanel时事件和方法丢失 我的flex封装文件是嵌入在extjs的tabpanel的一个tab中,当第一次打开该页面的时候,可以调用到ExternalInterface注册的方法,如果我切换到其他的tab然后再回到该页面,那么注册的方法就为null了。 也就是说操作完flex的东西,再切换tab后,flex中注册过的方法和监听事件都丢失了。 另外如果在多个页签中有多个tabpanel时,各个页签中的FLEX对象会出现互相卡死现象。 解决方法1: 重新注册flex中的方法和监听事件 解决方法2: 如果你点击flex里的内容怎么切换都没问题,只要操作过flex中的内容,在做tab切换,就会发现注册过的方法和监听事件都丢失了。 在切换tab前,可以把焦点从flex中移走,比如 contentTabPanel.on("beforetabchange",function(tabPanel,tab){ document.body.focus(); })

2.Flex嵌入切换到HTML中焦点不能输入中文 当焦点置于Flash后再切换到HTML元素中如HTML的INPUT输入框中,不管怎么切换我们的输入法,中文就是出不来。其实这算是Flash的一个BUG。 通过翻阅了FlexAPI相关函数时,发现flash.system.Capabilities参数组。 flash.system.Capabilities中有个是查看系统的输入法Capabilities.hasIME:[只读] 指定系统是否安装了输入法编辑器(IME),如果是,则为true,否则为false。服务器字符串为IME。 当我们焦点进入到Flash时我们的IME.enabled属性直接被Flash禁用,IME.enabled值变为false 这也就是当我们为什么焦点放在HTML的元素中,无论如何切换输入法就是不管用的原因。 首先对Flash主程序进行事件监听用到这个事件MouseEvent.ROLL_OUT: 用户将指针设备从InteractiveObject实例上移开时分派。事件目标是指先前在指针设备下的对象或该对象的父级。relatedObject是将指针设备向其移动的对象。在该对象的父级链以上连续分派rollOut事件,以该对象为开头,并以除relatedObject的根或始祖之外的最高级别的父级结束。 rollOut事件的目的是简化带有子级的显示对象容器的移开行为的编码。当鼠标离开显示对象区域或任何其子级区域并转到除其子级以外的对象时,显示对象分派rollOut事件。这是与mouseOut事件行为不同的行为,因为该事件是在每次鼠标离开显示对象容器的任何子对象区域时才会被分派,即使鼠标仍保留在显示对象容器的另一个子对象上也是如此。 当光标离开Flash时手动设置输入法开启代码如下 appGroup.addEventListener(MouseEvent.ROLL_OUT, setSRF); /** * 当光标离开Flash时开启设置系统的输入法 * */ private function setSRF(event:MouseEvent):void{ if(Capabilities.hasIME){ //安装了输入法编辑器 try{ if(!IME.enabled){ IME.enabled=true; } IME.conversionMode="CHINESE"; }catch(error:Error){

NorthStar常见问题解决方案

NorthStar问题解决方案 问题1——无法加载芯片描述文件 控制器选择为MultiFlex2—A VR,下载时提示如下无法加载ATmega128的描述文件(Could not load device parameters for ATmega128),如下图所示。 解决方法: ●切换到F:\Program Files\Uptech\STK500\usb目录(F:\Program Files\Uptech\是 NorthStar的安装目录); ●点击选中path.reg,点击右键选择“编辑”; ●打开文档后,将"A VRToolsPath"="G:\\prog_source\\STK500\\"中的 "G:\\prog_source\\STK500\\"用"F:\\Program Files\\Uptech\\STK500\\"替换; 注意: 这里要根据自己的安装路径进行更改; 目录之间分隔符用"\\"而不是"\"; 路径的最后一级目录到STK500,而不是usb。 ●修改完毕后保存,关闭文档; ●直接双击运行即可。 问题2—无法进入下载模式 控制器选择为MultiFlex2—A VR时进行下载,提示无法进入下载模式(Could not enter programming mode),如下图所示。

解决方法: 1.检查控制器电源是否开启,电量是否不足; 2.检查连接多功能调试器和控制器的排线是否松动或者断裂。 问题3—无法编译 在Vista或者Windows 7下,偶尔会出现无法编译的情况。一般是由于操作系统的安全性较高,禁止在NorthStar文件夹下生成文件。 解决方法: 1.切换到NorthStar安装目录,这里以本机路径为例——F:\Program Files\Uptech; 2.点击选中Uptech,右键选择属性,切换到安全属性页; 3.针对列表中每个用户名,都设置为“完全控制”。 问题4—Stk500无法连接 当控制器为MultiFlex2—A VR时,下载时出现无法连接Stk500的情况(could not connect to STK500 V2 on COM9),如下图所示; 解决方法: 1.检查PC机是否连接多功能调试器; 2.检查多功能调试器是否切换到A VRISP模式; 3.检查PC上对应的COM端口号是否在0—9范围,如果不在该范围需要更改设置;设置 方法如下: 右键点击“我的电脑”,选择“管理”;

FlexSkin动态加载皮肤问题分析

Flex动态加载皮肤问题分析 一.存在问题 1.Menubar皮肤通过StyleManager无法卸载,进而使第二套皮肤中MenuBar的皮肤无法 加载。 问题描述: 1)动态加载和卸载一个工程的皮肤是通过StyleManager实现: StyleManager.loadCSSStyleDeclarations(“theme1/theme1.swf”,true); StyleManager.unloadCSSStyleDeclarations(“theme1/theme1.swf”); 2)要只动态加载和卸载一个组件的皮肤: var cssStyle:CSSStyleDeclaration = new CSSStyleDeclaration(); cssStyle.setStyle(“overSkin”,imgSource); StyleManager.setStyleDeclaration(“MenuBar”,cssStyle); StyleManager.clearStyleDeclaration(“MenuBar”); 3)也可以通过MenuBar的实例方法clearStyle(),setStyle()等方法来逐次对MenuBar组件的皮肤进行设置: menuBar.setStyle(“overSkin”,imgSource); menuBar.clearStyle(“overSkin”); 但是,按照以上方案,对MenuBar的皮肤设置往往无效,MenuBar的皮肤总是无法卸载(注意,讨论问题的前提是动态加载皮肤之后,静态加载皮肤不在此属之列)。 进一步: 测试发现,MenuBar中的项在鼠标移动过之后,一旦皮肤被初始化,该项的皮肤就停留,不可更改:即切换皮肤之后,该项保留上一套皮肤外观,不能切换到对应的皮肤上。如: 在采用默认皮肤的时候,用鼠标滑过某一MenuBarItem,也就是初始化了该Item 的overSkin之后,再切换到另一套皮肤,没有经过初始化(即鼠标移动过去使其显现overSkin)的Item都成功发生了皮肤更替。而上次经过皮肤初始化的Item在执行换肤动作之后都保留了上一套皮肤,新皮肤无法施加。 问题分析: 由于这些现象的出现是以MenuBarItem为单位出现,问题可能出现在MenuBarItem 这个类中,而且每一套皮肤的控制是通过状态(State)来实现,所以找到State更改的地方(mx.controls.menuClasses.MenuBarItem.as):

flexsystemCMM配置指南

C M M使用IP: 默认用户名:USERID 默认密码:P@ssw0rd 管理页面 输入、及用户名密码

初始页面(可以看到前后视图及部件状态) 系统组件 任意选取一台服务器或者部件查看详细信息(日志、详细配置、微码),先看下CPU 内存信息(可以显示哪些槽位有内存、每条内存的大小)系统信息 Multi-ChassisMonitor 事件 导出日志 保存日志 Servicesandsupport 问题反馈 Setting 机箱管理 chassis Airflow

Identification下可以设置计算机的名称之类、不太常用。Handwareactivity下可以查看当前所有激活的服务器及模块。Temperture可以查看当前的温度(满配20.50度) 还可以选择某一时间段温度的变化情况。 AIRFLOW 节点控制 当前服务器列表及状态,选择Action-->lunchcomputernod econsole 弹出如下JAVA提示框,问啥都要继续了 然后跳转到该节点的IMM远程控制页面 提供两种远程模式、UsetheActiveXClient /UsetheJavaClient任选其一、单用户及多用户模式根据实际情况选其一。根据本机的情况使用,建议使用java方式.又要提示、照例继续。 在上图点击RUN后终于弹出服务器控制窗了 我们来看看菜单有啥、第一项FILE只有一个capturefile帮助大家来抓图 第二项view主要是帮大家设置显示效果、色彩、全屏之类 第三项macros主要是各种组合键、相当齐全、还嫌不够的话就自己选择softkey 去ADD吧。 第四项TOOLS是最常用的、电源开关、远程虚拟介质都在此列,还可以选择launchRD直接转为远程桌面. 加载虚拟介质步骤 选择ADDIMAGE、直接选取笔记本中ISO、Serverguide或者2008(没有! 回家洗洗睡吧、兄弟) 选择好ISO还得点击下mountselected,点开Details可以看到介质已经在读取了。

Flex学习笔记

AS基础学习 1.Boolean中非零数字表示TRUE,只有0才表示FALSE. 2.IndexOf表示要查的东西的位置,-1表示不存在。 3.Boolean默认值为false. int默认值为0. string默认值为空。 4. is检测是否是指定类型,返回Boolean值。as同is,但返回的是表达式值。 5.数组传递,原始数据会改变。而简单类型的数据不会改变。如下: var i :int= 5; var j : int = 10; varss:Array = new Array("aa","bb","cc"); public function sum(i:int , j:int):int{ this.i++; this.j++; return i + j; } public function checkValue(ss1:Array):void{ ss1[1] = "xx"; } public function getValue():void{ /*varresult:int = sum(i,j);

out(result.toString());//输出为17 out(i.toString());//输出为5 out(j.toString());//输出为5*/ checkValue(ss); Alert.show(ss[1]);//输出为xx } 6.flex中的setTimeout(show(),1000)作用是:相当于一个递归,经过1000毫秒重复调用show()方法。 7.更改日期格式: var f:DateFormatter = new DateFormatter(); f.formatString = "YYYY-MM-DD HH:NN:SS"; f.format(要格式化的时间变量); 8.Math.ceil(x):比x大的最小值。 Math.round(x):四舍五入。 Math.floor(x):比x小的最大值(截掉小数点)。 Math.round(x)返回long型,其余的返回double 型。

flex接口简易说明

Flex接口简易说明 一、接口介绍 本接口由Flex技术实现,接口调用的表现形式为JS方法,用户只需要调用相关JS方法即可实现呼叫中心大部分功能。 二、接口调用 只需在WEB页面包含下面一行代码即可: 三、函数列表 1.mixConnect(ip, port) 用来将接口与呼叫中心进行连接,参数为呼叫中心IP地址及端口号。连接成功后,接口会自动调用mixOnConnect()方法。 2.mixDisconnect() 用来将接口与呼叫中心断开连接,无参数。 3.mixGetVersion(actionid) 获取接口版本号,actionid为用户传递的唯一标识,该actionid会在执行结果中 返回。该方法执行后,接口会自动调用mixOnResult(str)方法,并将执行结果以参 数形式传递给mixOnResult(str)方法。 返回结果如: Response: Success ActionType: mixGetVersion ActionID: 10000 FlexVersion: V100R001B01D01-20110712 JSVersion: 4.mixSetDND(exten, dnd, actionid) 设置分机示忙/示闲,exten为分机号码,dnd为-1时表示示闲,其它非空值为示忙,actionid为用户传递的唯一标识,该actionid会在执行结果中返回。该方法执行 后,接口会自动调用mixOnResult(str)方法,并将执行结果以参数形式传递给 mixOnResult(str)方法。 返回结果如: Response: Success ActionType: mixSetDND ActionID: 777 Value: -1(参数dnd的值) 5.mixGetDND(exten, actionid) 获取分机示忙状态,exten为分机号码,actionid为用户传递的唯一标识,该 actionid会在执行结果中返回。该方法执行后,接口会自动调用mixOnResult(str) 方法,并将执行结果以参数形式传递给mixOnResult(str)方法。 返回结果如: Response:Success ActionType: mixGetDND ActionID: 888 Value: -1(参数dnd的值) 6.mixHold(exten, holdnum, actionid)

FLEX提高编译效率解决方案

提高Flex编译效率方案 一.问题描述: (1) 二.解决方案: (1) 三.编译效率测试 (2) 四.推荐方案 (9) 一.问题描述: 编译效率是开发效率中的一个重要环节,以下几种情况使得FlexBuilder的编译效率低下,1).开发人员的机器配置太低(要求2G以上内存),2).工程中加载的模块太多甚至模块间有关联,3).每次修改都自动编译整个项目。除了机器要求之外,以下分析并提供了四种能够提高编译效率的方式。 二.解决方案: 1.采用模块化开发,不开发的就不引用,这样可大大加快编译速度。开发人员各 司其职,最后发布的时候再统一builder。 2.把 Build Automatically 选项去掉,模块编译改用手动 Build,修改完善之 后才进行Build,该方式为增量编译。 3.采用fsch + ant编译模块,fsch是一个编译的后台程序,需要在开发机器上 安装,通过ant执行 build.xml文件来调用fsch服务,build文件中的执行如 下:

相关主题