Flex4.6事件监听机制的测试和总结-图文+源代码

合集下载

FLEX展现PHP连接ORACLE取到的数据实例教程

FLEX展现PHP连接ORACLE取到的数据实例教程

FLEX展现PHP连接ORACLE取到的数据实例教程网上的教程大都是用AMFPHP去开发MYSQL数据库的,但是对于大中型数据库ORACLE怎么与AMFPHP的配置、开发却讲得很少,大多都只是讲到访问phpinfo.php能看到OCI8驱动的信息为止了,且还错误重重。

由于我单位使用的数据库使用的是ORACLE 数据库,因此想使用FLEX结合AMFPHP开发一些应用,因此研究了一下午,这个过程还挺艰辛,所以写下来,以便那些同样需要开发ORACLE的网友们少走弯路。

PHP的安装就不多说了,我用的是phpStudy绿色版,解到一个目录中就可以使用了,如果你的机器上有APACHE和MYSQL,要先停掉原先的应用。

然后是安装AMFPHP,这个很简单,下载后解到PHP的WWW目录下,打开AMFPHP 目录中的gateway.php这个配置文件,将编码设置改为$gateway->setCharsetHandler("iconv", "gb2312", "gb2312"); ,因为一般ORACLE的默认字符是GB2312或是GBK的,因此要改成与你ORACLE服务器字符集相同的配置。

不然显示出来会是乱码。

下一步是进行ORACLE客户端的配置,这里请注意一定要安装Oracle10g的客户端,我的机器用的是oracle8的客户端死活在phpinfo中不出现OCI的驱动,浪费了我许多时间。

因此请先去安装instantclient,现在的最新版本是instantclient-basic-win32-11.1.0.7.0.zip 这个压缩包,在oracle网站上就有,自己去搜一下。

下了之后,随便先个目录解压缩,比如是C:/OracleClient/Bin,并且要将这个路径添加到系统变量path中去,而且这里要说明的一点,最好添加在path路径的开头,因为我的原来的Oracle客户端是8.0的,因此在path路径中也有8.0的路径,如果不将Oracle的路径加在前面,PHP会去先找8.0的目录,会认为Oracle客户端是8.0的系统,而加载失败。

Flex总结

Flex总结

如何把XML格式转换为ArrayCollection?首先把xml转换为XMLListCollection,然后把XMLListCollection指定为ArrayCollection的source,例如:Servlet中如何向Flex前台传送大量的数据?首先,你要知道在Flex中一切数据都是以XMl格式为中心的,所以,我们在Servlet中可以把数据生成XML文件的形式,然后以流的形式发送到前台,通过生成一个XML对象进行解析。

Flex怎样与Servlet进行交互?两种方法:A、通过HTTPServiceFlex前台----<s:HTTPService id="service"url="http://localhost:8080/flexdemo/simpleServiceServlet"></s: HTTPService>Servlet后台----如果在HTTPServic中不指出method时,servlet默认Get方式接收B、通过URLRequest例如在代码最后,callBack为回调函数。

如果我们不需要servlet中数据处理完毕后在Flex前台调用数据,UrlLoader也可以换为sendToURL(request).如何使用户无法在comboBox手动输入字符?为解决这个情况可以设置comboBox的属性focusIn=”comboBox.textInput.editable=false;”在Flex向Java后台传值时如何避免字符乱码?Flex前台:encodeURI(变量)Java后台:flex.messaging.util.URLDecoder.decode(接收的变量)读取一个完整的XML文件Flex怎样与Java进行交互?前提概要:Flex应用可以以远程对象、HTTP(或REST)服务和Web服务的方式访问数据服务。

sip错误代码

sip错误代码

1xx = 通知性应答∙100 正在尝试∙180 正在拨打∙181 正被转接∙182 正在排队∙183 通话进展2xx = 成功应答∙200 OK∙202 被接受:用于转介3xx = 转接应答∙300 多项选择∙301 被永久迁移∙302 被暂时迁移∙305 使用代理服务器∙380 替代服务4xx = 呼叫失败∙400 呼叫不当∙401 未经授权:只供注册机构使用,代理服务器应使用代理服务器授权407∙402 要求付费(预订为将来使用)∙403 被禁止的∙404 未发现:未发现用户∙405 不允许的方法∙406 不可接受∙407 需要代理服务器授权∙408 呼叫超时:在预定时间内无法找到用户∙410 已消失:用户曾经存在,但已从此处消失∙413 呼叫实体过大∙414 呼叫URI过长∙415 不支持的媒体类型∙416 不支持的URI方案∙420 不当扩展:使用了不当SIP协议扩展,服务器无法理解该扩展∙421 需要扩展∙423 时间间隔过短∙480 暂时不可使用∙481 通话/事务不存在∙482 检测到循环∙483 跳数过多∙484 地址不全∙485 模糊不清∙486 此处太忙∙487 呼叫被终止∙488 此处不可接受∙491 呼叫待批∙493 无法解读:无法解读 S/MIME文体部分5xx = 服务器失败∙500 服务器内部错误∙501 无法实施:SIP呼叫方法在此处无法实施∙502 不当网关∙503 服务不可使用∙504 服务器超时∙505 不支持该版本:服务器不支持SIP协议的这个版本∙513 消息过长6xx = 全局失败∙600 各处均忙∙603 拒绝∙604 无处存在∙606 不可使用代码详解:SIP协议应答码应答代码应答码是包含了,并且扩展了HTTP/1.1应答码。

并不是所有的HTTP/1.1应答码都适当应用,只有在折里指出的是适当的。

其他HTTP/1.1应答码不应当使用。

并且,SIP也定义了新的应答码系列,6xx。

LTP使用说明

LTP使用说明

LTP工具说明1LTP测试套件 (3)1.1简介 (3)1.2源目录结构 (3)2LTP安装 (4)2.1下载 (4)2.2编译 (4)2.3安装说明 (5)3LTP测试套件结构说明 (6)3.1概述 (6)3.2目录介绍 (6)3.3LTP执行原理 (6)4LTP测试套件测试内容 (7)4.1LTP测试套件测试内容 (7)4.1.1commands (7)4.1.2kernel (7)4.1.3kdump (8)4.1.4network (8)4.1.5realtime (8)4.1.6open_posix_testsuite (8)4.1.7misc (8)4.2测试方法说明 (8)4.2.1commands模块内容描述及实现方法 (8)4.2.2kernel (10)4.2.3network (15)4.2.4open_posix_testsuite (17)4.2.5realtime (18)5LTP测试套件配置详细 (19)5.1networktests.sh脚本配置 (19)5.2networkstress.sh配置 (23)5.3open_posix_testsuite测试套件 (28)5.4realtime配置 (29)5.5mm脚本的配置 (30)5.6io脚本配置 (30)5.7filecaps的配置 (30)5.8tpm_tools的配置 (31)5.9tcore的配置 (31)5.10io_floppy的配置 (31)5.11io_cd 的配置 (32)5.12cpuhotplug的配置 (32)5.13adp.sh的配置 (33)5.14autofs1.sh和autofs4.sh的配置 (34)5.15exportfs.sh的配置 (34)5.16isofs.sh的配置 (34)5.17ltpdmmapper.sh的配置 (35)5.18ltpfslvm.sh的配置及要求 (36)5.19ltpfsnolvn.sh的配置及要求 (36)5.20ltp-scsi_debug.sh的配置及要求 (37)5.21sysfs.sh的配置及要求 (37)5.22rpctirpc的配置及要求 (37)5.23test_selinux.sh的配置及要求 (39)5.24smack的配置和要求 (40)5.25perfcounters的配置及要求 (41)5.26can的配置及要求 (41)5.27test_robind.sh的配置 (42)6LTP测试套件使用说明 (43)6.1概述 (43)6.2测试方法 (44)6.2.1初始测试 (44)6.2.2压力测试 (47)1LTP测试套件1.1简介LTP(Linux Test Project)是SGI、IBM、OSDL和Bull合作的项目,目的是为开源社区提供一个测试套件,用来验证Linux系统可靠性、健壮性和稳定性。

FLEX常用验证控件

FLEX常用验证控件
</mx:ControlBar>
//创建验证控件,放在数组里
<fx:Array id="roleNameValidators">
<mx:Validator id="roleNameValidator"
source="{roleName}" property="text"
required="true" requiredFieldError="请输入角色名" />
4.批量验证
创建一个表单
<mx:Form>
<mx:FormItem label="当前部门: ">
<mx:Text id="txtDepartName" width="100"/>
</mx:FormItem>
<mx:FormItem label="*新建角色名称(至多10个汉字): ">
<mx:TextInput id="roleName" width="100%"/>
trigger="{btn}" triggerEvent="click"/>
<mx:FormItem label="姓名:">
<mx:TextInput id="nameTI"/>
</mx:FormItem>
<mx:FormItem label="年龄:">

flex4事件详解

flex4事件详解

Flex4之事件详解第一、Flex事件简介事件贯穿于Flex应用开发的全过程。

事件是ActionScript3.0中最重要的部分之一,也是Flex应用程序开发的核心基础。

本章将在DOM 3的基础上详细讲解ActionScript3.0和Flex中的事件机制。

第二、一切从事件开始利用事件处理,可以方便地响应和处理用户输入和系统事件。

Flex 事件模型不仅方便,而且符合标准,新的事件模型基于文档对象模型(DOM,Document Object Model)第3级事件规范,为Flex程序员提供了强大而直观的事件处理工具第三、事件简介什么是事件呢?我们去商店里买鞋子时,选择好鞋子后,告诉销售人员鞋子的款式、号码、付款,然后服务员将符合购买要求的鞋子交给我们。

这样就完成了一个事件的流程。

但是如何找到售货员买鞋子,售货员拿什么样的鞋子给客户,都是事件要处理的事情。

对于Flex而言,其重要的部分就是与用户进行交互。

用户的操作,例如键盘输入、鼠标点击等引起界面的响应,然后在内部进行一系列的操作,最终返回用户需求的信息。

简单的过程,即包含了事件的核心思想。

用户的操作触发了某个事件,同时产生该事件的信息,通知相关的对象进行处理。

其中,如何发起消息、传递消息是Flex非常关键的问题。

第四、DOM3事件机制DOM3的事件模型是非常简单的,符合我们日常思考的习惯。

在上一节开头所举的买鞋的例子中,买鞋的人(客户)可以看作事件发送者(Event Dispatcher),买鞋的过程可以看作事件,而销售人员即事件侦听器(Event Listener)。

买鞋可以看作事件的类型(Type)。

买鞋的个人即事件的目标(Target)DOM3事件机制包含4个部分:注册事件侦听器、发送事件、侦听事件、移除事件侦听器。

这4个部分贯穿整个事件的发生和结束。

第五、ActionScript3.0中的事件机制在Flex的事件机制中ActionScript扮演了非常重要的角色。

Bison-Flex笔记

Bison-Flex笔记

Bison-Flex笔记Bison-Flex 笔记FLEX什么是 FLEX ,它是一个自动化工具,可以按照定义好的规则自动生成一个 C 函数 yylex() ,也成为扫描器( Scanner )。

这个 C 函数把文本串作为输入,按照定义好的规则分析文本串中的字符,找到符合规则的一些字符序列后,就执行在规则中定义好的动作( Action )。

例如在规则中可以这样定义:如果遇到一个换行字符 \n ,那么就把行计数器的值加一。

Flex 文件就是一个文本文件,内容包括定义好的一系列词法规则。

文件的命名习惯上以小写字母 l(L) 来作为文件后缀。

如果为了清晰,也可以用 .flx 或者 .flex 作为文件的后缀名。

Flex 文件完成后,就执行下列命令: $ flex example.flex这个命令执行后将生成一个 C 文件,默认文件名为 lex.yy.c 。

这个 C 文件主要内容就是函数 yylex() 的定义。

如果要直接将这个文件编译成为一个可执行程序,还有一些要注意的地方。

如果在 Flex 文件中没有提供 main() 函数的定义,那么这个 C 文件中不会有main() 函数。

此时单独编译这个 C 文件的时候,一定要加上 -lfl 的连接库参数;若提供了 main() 函数,就不必要提供这个连接库参数了。

连接库 libfl 提供了一个缺省的 main 函数。

缺省的 main() 函数中只是简单地调用 yyflex() 函数,而自己提供的 main() 函数则可以根据需要加入许多其他的处理代码。

Flex 文件词法规范定义文件给出了单词构成规则。

词法文件在习惯上用字母 l( 即 L 的小写 ) 来作为后缀。

Flex 文件由三个部分组成。

或者说三个段。

三个段之间用两个 %% 分隔。

定义段 (definitions)%%规则段 (rules)%%用户代码段 (user code)定义段 (definitions section)定义段包含着一些简单名字的定义 (name definitions) ,旨在简化扫描器的规范。

测试标准(中国电信研究院)

测试标准(中国电信研究院)
2.1. 测试目的...................................................................................................................2 2.2. 测试原则...................................................................................................................2 2.3. 测试范围...................................................................................................................3 2.4. 参考资料...................................................................................................................3 3. 测试环境...................................................................................................................................4 3.1. 网络拓扑...................................................................................................................4 3.2. 硬件环境...................................................................................................................5 3.3. 软件环境...................................................................................................................6 4. 标准测试用例...........................................................................................................................7 4.1. 前端设备测试...........................................................................................................7
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Flex4.6事件监听机制的测试和总结在Flex和Actionscript3中,事件的类型有很多,比如单击的click、鼠标移动的mouseEvent、改变大小等。

开发人员需要注意的是,某个组件如何设置监听、发出事件,以及事件的响应操作。

这种方式被称之为“事件驱动”方式。

事件驱动涉及到的有关概念包括:1、事件对象,即event object。

所有的事件对象都是flash.events.Event或者其子类。

每个事件对象都包含事件类型(type)和事件源(target),便于event listener知道事件的类型以及事件发出者。

事件对象是Event类或者某个子类的实例,不但存储了有关特定事件的信息,还包括便于操作事件对象的方法。

2、事件源,即event dispatchers。

是事件发起的主体,所有的dispatcher都是eventdispatcher或其子类。

3、事件监听器,即event listeners。

它表现为一个函数,当事件发生时,事件源dispatcher通知该监听器去处理特定的事件。

为对象添加监听器的方法是:addEventListener(type, function)。

当指定类型的事件发生时,事件监听器以事件对象eventObject为参数传递给事件响应函数。

同一时刻同一组件可能有多个事件发生,因此这里指定事件类型是非常有必要的。

4、事件流,当一个组件触发事件时,这个事件会沿着一定的顺序流动,每经过一个组件,就会检测这个组件是否注册了该事件类型的监听器,如果注册了,就会响应,并调用事件处理函数。

事件流分为三个阶段:(1)捕获阶段,Flex应用程序从根显示元素(如Application)逐层向下寻找,直到找到事件产生的源头。

(2)目标匹配阶段,在该阶段,Flex应用程序会调用目标对象自身注册的监听程序。

(3)冒泡阶段,在该阶段,从目标节点到根节点,逐层向上检测每个节点是否注册了监听器,相当于捕获阶段的逆过程。

Flex应用程序可以在addEventListener()函数中的第三个参数设置事件获取的阶段,如果为true,则关闭捕获阶段,开启目标匹配和冒泡阶段。

如果要阻断事件流继续流动,可以在监听器的响应函数中添加:event.stopPropagation();由于Flex设置的监听事件类型比较少,如果需要设置组件的特殊响应事件,或者为自定义组件添加自定义的响应事件,我们需要设计自定义类型的Event对象。

下面我们以一个由button和textInput控件组成的自定义组件InputButtonComp为例,为该组件设置按钮单击时的响应事件。

第一步:设计自定义组件。

(1)新建InputButtonComp.as类文件,继承自BorderContainer容器,并定义自定义组件中需要包含的控件。

public class InputButtonComp extends BorderContainer {private var textInput:TextInput;private var button:Button;private var group:HGroup;(2)在InputButtonComp组件中添加子控件,重写createChildren方法。

//添加子组件,并指定初始状态override protected function createChildren():void{ super.createChildren();if(!group){group = new HGroup();group.percentWidth = 100;group.percentHeight = 100;}if(!textInput){textInput = new TextInput();textInput.percentWidth=75;textInput.percentHeight=100;textInput.editable = true;}if(!button){button = new Button();bel = _btnLabel;button.percentWidth = 25;button.percentHeight = 100;//注册监听器,响应单击事件和键盘进入事件button.addEventListener("click",buttonClickHandle);button.addEventListener(KeyboardEvent.KEY_DOWN,buttonEnterHandle);//回车键响应}addElement(group);group.addElement(textInput);group.addElement(button);}(3)自定义组件样式设置//提交组件的变化override protected function commitProperties():void{ mitProperties();invalidateDisplayList();}//默认宽度和长度override protected function measure():void{super.measure();}override protected functionupdateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void{super.updateDisplayList(unscaledWidth,unscaledHeight);//button.move(textInput.width,0);}(4)设置按钮的监听器,我们设置在监听器中能分发出一个自定义的事件InputButtonCompEvent到事件流中,自定义事件的类型是“buttonClick”,传递的参数是我们的输入内容textInput.text。

//分发按钮单击响应事件private function buttonClickHandle(event:Event):void{ this.dispatchEvent(newInputButtonCompEvent("buttonClick",textInput.text));}//分发按钮回车键提交响应事件private functionbuttonEnterHandle(event:KeyboardEvent):void{if(event.charCode == 13){this.dispatchEvent(newInputButtonCompEvent("buttonClick",textInput.text));}}这一步涉及到自定义组件设计的相关内容,这一方面我们不在此做过多叙述。

在这一步当中,我们做的工作主要是把自定义的组件搭建好,并为其中的子组件设置并注册了监听器。

其中的监听器能分发出我们自定义的事件InputButtonCompEvent到事件流中。

那么接下来,我们就要设计这个自定义事件的内部细节了。

二、自定义事件的设计我们需要在InputButtonCompEvent.as文件中创建一个自定义的事件类。

所有事件对象都是flash.events.Event或其子类,因此自定义事件类需要继承自Event类:public class InputButtonCompEvent extends Event {然后我们的构造函数决定了自定义事件具有的参数列表形式,比如:public functionInputButtonCompEvent(type:String,eventInfo:Object=null,bubbles :Boolean=false,cancelable:Boolean=false){super(type,bubbles,cancelable);this.eventInfo = eventInfo;}Event类具有三个参数:type,事件类型、bubbles ,Event 对象是否参与事件流的冒泡阶段。

默认值为false、cancelable,确定是否可以取消Event 对象。

默认值为false。

我们在此基础上添加了一个参数eventInfo:Object,用于事件之间的参数传递,并定义该参数的获取和赋值方法:public function get eventInfo():Object{return _eventInfo;}public function set eventInfo(value:Object):void{_eventInfo = value;}三、初步测试到这里,我们的自定义组件和它的自定义响应事件已经建立起来了,也许此时你兴致勃勃的打算欣赏自己的杰作,于是你把自定义组件项目生成的库文件InputButtonComponent.swc拷贝到你的项目中的libs目录下,在设计模式下从自定义组件中找到我们的组件InputButtonComp,拖入我们的工作界面,大概是这么个样子:一切正常吧,你很满意。

然后设置组件的buttonClick事件响应函数:这是开始出现问题了,在Flex-Builder编辑器底端提示错误:这里为什么出错了呢?回想一下在设置自定义事件的buttonClick类型时,我们只是在分发自定义事件到事件流时,定义了事件类型为buttonClick://分发按钮单击响应事件private function buttonClickHandle(event:Event):void{ this.dispatchEvent(newInputButtonCompEvent("buttonClick",textInput.text));}但是系统怎么识别这个类型呢?换句话说,自定义组件是怎么知道这个是它要去响应的事件呢?四、修改测试Flex中专门为事件定义了一个[Event]元标签,用来申明被自定义组件分派的事件。

这就需要我们在自定义组件的时候,要对这个事件类型及其对应的事件进行申明:.....}事件类型申明放在package申明的后面,类的前面:package componentsBorderContainer { .....}}上述的标签[Event]属于元数据标签,在代码中的作用是向编译器提供如何编译程序的信息,而不会被编译到生成的swf/swc文件中。

为元数据标签定义的name属于自定义组件的事件属性名,在自定义组件中使用name可获取类型为type的自定义事件,并在应用程序中设置其处理函数。

这个时候错误消失了,整个环节都已经搭建好。

相关文档
最新文档