Flex FlashPlayer插件非调试版本不报错问题处理
来源:互联网 发布:手机淘宝弹窗劫持 编辑:程序博客网 时间:2024/04/29 15:29
问题:
FlashPlayer插件对不同的浏览器有不同的版本,从其是否支持调试功能可分为:可调试插件和不可调试插件,两者主要区别有:
1) You can connect to it with the remote debugger The (right-click) context menu will include an option to "Show Redraw Regions", which lets you verify how much of your content is being redrawn each frame.
2) The debug player will show a pop-up error message for uncaught exceptions (in the regular player they would fail silently.
3) There are a handful of AS3 commands which only work in the debug player, such as System.gc(). See the System reference.
4) Basically the debug player has a sprinkling of features to make it more suited for development, and anyone developing their own content should probably be using it.
特别注意第2点,debug player在遇见未被不做错误时会弹出错误消息框,而regular player则不会报错。鉴于此,用户在使用flex应用时,往往会碰到不可遇见的怪现象,如用户点了保存按钮没反应,点了查询按钮没反应等。事实上,用户点击保存按钮的时候,程序执行过程中出错了,但是开发人员为捕捉错误,而不可调试player却未报错。
解决:
要解决此怪象,本人认为可以有3种解决方案。
1)所有flex 的代码全部进行try catch处理,估计程序员会变疯;
2)所有用户请使用带调试的插件,估计不是用户会变疯就是支持人员会变疯;
3)进行flex全局错误处理。
很明显,进行flex全局错误处理是比较好的解决方案,但是flex全局错误处理只支持flashplayer10.1及以后的版本,SDK需要4.1版本。因此,对于哪些sdk和flashplayer如有严格要求的flex应用就爱莫能助了。下述为flex全局处理的adobe的官方文档的一个例子:
http://help.adobe.com/zh_CN/AS3LCR/Flex_4.0/flash/events/UncaughtErrorEvent.html#includeExamplesSummary
遗憾的是flex新提供的错误全局处理机制,只支持application及sub application,对于module却不支持。
<?xml version="1.0" encoding="utf-8"?>
<s:WindowedApplication xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/halo"
applicationComplete="applicationCompleteHandler();">
<fx:Script>
<![CDATA[
import flash.events.ErrorEvent;
import flash.events.MouseEvent;
import flash.events.UncaughtErrorEvent;
private function applicationCompleteHandler():void
{
loaderInfo.uncaughtErrorEvents.addEventListener(UncaughtErrorEvent.UNCAUGHT_ERROR, uncaughtErrorHandler);
}
private function uncaughtErrorHandler(event:UncaughtErrorEvent):void
{
if (event.error is Error)
{
var error:Error = event.error as Error;
// do something with the error
}
else if (event.error is ErrorEvent)
{
var errorEvent:ErrorEvent = event.error as ErrorEvent;
// do something with the error
}
else
{
// a non-Error, non-ErrorEvent type was thrown and uncaught
}
}
private function clickHandler(event:MouseEvent):void
{
throw new Error("Gak!");
}
]]>
</fx:Script>
<s:Button label="Cause Error" click="clickHandler(event);"/>
</s:WindowedApplication>
- Flex FlashPlayer插件非调试版本不报错问题处理
- FlashPlayer 11 调试版本下载
- 前后台调试不报错但是不走action问题处理
- FlashPlayer debug 版本安装问题 汇总
- flashPlayer调试
- 解决myeclipse自带maven下载中央仓库插件报403错误的问题(8.6版本不报403)
- Error处理:遇见引入ViewPager包,编译不报错,运行报错ViewPager不存在问题
- javascript:检测FlashPlayer版本
- VS调试时有异常,不报错,直接停止调试
- Flex调试问题。。。
- flex调试问题
- Flex 调试版本下载,解决会话超时,调试错误等等问题!
- Array 越界不报错的问题
- python3中子进程不报错的问题
- 关于 服务器 不报错 非高并发 假死
- 不报错
- flash builder 4.6在debug调试时需要系统安装flashplayer debug版本
- flash builder 4.6在debug调试时需要系统安装flashplayer debug版本
- nfs启动
- 搜索引擎技术揭密:中文分词技术
- 超长短信
- Linq查询
- 参数校验
- Flex FlashPlayer插件非调试版本不报错问题处理
- 开始写博客啦~
- Your first MeeGo Touch application
- 列个Qt学习内容表
- Android学习网站推荐
- Qt中添加自定义Slot函数的方法(VS2010+Qt4.7.0)
- 得到服务器路径
- 致腾讯的一封信
- 你在中国有去过那些地区?