屏蔽flex IOErroEvent的方法
在flex的开发当中,不可避免的要出错,但是flash的错误弹出真是太吓人了,一点都不友好。我们要怎么来屏蔽它,弹出我们想要的对话框呢?过程中有什么要注意的呢?
在java里面我们处理异常的方法就是try{}catch(){}finally{}。我尝试过这样的方法。
FileReference f=new FileReference();
会出错,但是用try catch的方法是阻止不了吓人的界面再次出现的。原因很简单,因为弹出的错误是IOErroEvent。是一个事件,在flex里面,异常(exceptio)是用try catch来处理的,java也是这样,但是事件呢,却是用Listener来处理的。
f.addEventListener(IOErrorEvent.IO_ERROR,ioErroHandler);
这样就解决问题了。
还有一个问题是,listener添加的组件,应该是哪个组件出错就添加到什么组件上面。像上面的例子里面,如果把listener加在FileReference 外面的组件上面,是没有效果的。
相关文档:
Flex 和C++ 之间传输结构体数据
一直想试验用结构体传数据
但是Flex 和C++ 的类型所占的字节数有时不一样
如int 在C++中站2个字节,而在Flex中占4个字节。
转换比较麻烦。
最后决定用XML进行传输
然后两边都加一个XML 解析和封装类。
C++ 端使用的tinyXML 类
Flex直接使用自己带的 E4X 类
Flex代码如下
&nb ......
研究E4X与Flex的关系,所以打算总结一下,有说的不对的地方,还请大家多多原谅。
一、最简单模式:Flex通过httpservice和dataProvider进行数据传输
Xml格式如下:
<?xml version="1.0" encoding="utf-8" ?>
<Result>
<NodeA>value1</NodeA>
<NodeB>valve2</NodeB>
…&he ......
本文共两个文件:translate.mxml 和 mapmarking.xml
1、translate.mxml
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="librar ......
首先:确定数据库的编码为utf8,正常储存中文(用MySQL-Front查看中文是否正常)
然后:Services查询MySQL时使用"SET NAMES 'utf8'",且通过"amfphp/browser"运行看看是否中文,如果乱码则修改gateway.php文件,去掉 $gateway->setCharsetHandler("utf8_decode", "ISO-8859-1", "ISO-8859-1");
最后:运行Flex程序显 ......
本帖最后由 flashyiyi 于 2009-2-22 23:18 编辑
最终我决定还是用“隐藏”这个不是很合适的词。mx_internal是一个自定义命名空间,至于“命名空间”到底是什么就不在这里说了。总之,当我们在代码头部写上:
use namespace mx_internal
(如果是.AS文件,需要手动import mx.core.mx_internal,注 ......