flash中通过XMLSocket监控生产系统(2-2)

xml|监控

<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 
4) 当连接建立成功之后,客户端与服务端就可以相互发送XML数据了。使用XMLSocket 对象的send方法向服务端发送数据:

mySocket.send(myXML);

  其中,myXML是一个包含XML数据的XML对象,send方法先把myXML转化为字符串,然后将该字符串发送到服务端,并在字符串发送后,追加发送一个0字节。send方法没有返回值。

  以下示例中,先生成一个空的XML对象myXML,然后在myXML中添加了一个元素节点myLogin,该节点包含两个属性username和password,send方法把myXML转化成字符串 后,发送给服务端,当然还要追加发送一个0字节,以表示一条XML数据的完成:

var myXML = new XML();
var myLogin = myXML.createElement("login");

myLogin.attributes.username = "morgan";
myLogin.attributes.password = "loveme";
myXML.appendChild(myLogin);

mySocket.send(myXML);

  当有数据到达(收到一条以0字节为结尾的字符串)时,首先将触发onData事件,相应的事件处理函数myOnData带有一个参数,表示当时到达的数据字符串,但不包含0字节,如下例中,服务端传来一个字符串 “I am Morgan Yang !”,加上一个0字节,以下语句将把myTextField(为一非静态文字TextField对象的实例)的内容设为“I am Morgan Yang !”,我们注意到这里发送的数据,可以是包括XML格式在内的任何形式:

function myOnData(src) {
myTextField.text = src ;
}

对于onData事件,如果没有相应的事件处理函数,默认将触发onXML事件,形式如下:

XMLSocket.prototype.onData = function (src) {
this.onXML(new XML(src));
}

  即在onXML事件中,使用onData事件中得到的数据生成一个XML对象,并把该对象作为参数传给onXML事件的处理函数,所以如果要自定义onXML事件的处理函数,服务端发送来的数据就必须是XML格式,否则就会发生意想不到的错误。如果设置了onData事件的处理函数,当数据到达时,将不再调用onXML事件的处理函数,除非在显式地调用,所以在某种意义上,两种事件是互斥的。

  在没设置onData事件处理函数,又设置了onXML事件处理函数情况下,当有XML数据 到达时,以下语句将把两个非静态文字实例nameTextField和passwordTextField的内容分别设为“Morgan”和“loveme”:

function myOnXML(doc) {

var e = doc.firstChild;

if (e != null && e.nodeName == " login ") {

nameTextField.text = e.attributes.username ;
passwordTextField.text = e.attributes.password ;
}
}

5) 最后,在程序结束的时侯,使用XMLSocket 对象的close方法,关闭Socket连接,如下:

mySocket.close();

  需要注意的是,使用XMLSocket 对象的close方法,来关闭Socket连接不触发XMLSocket对象的onClose事件,只有当Socket连接被服务端关闭时,才在Flash应用客户端触发该事件,默认情况下,XMLSocket 对象的onClose事件处理函数不执行任何动作,可以自定义该事件处理函数,以达到特定目的。如以下语句,在onClose事件发生时,把myTextField(为一非静态文字实例)的内容设为 “Socket Closed By Server !”

function myOnClose() {
myTextField .text = "Socket Closed By Server !" ;
}

时间: 2024-08-22 14:16:12

flash中通过XMLSocket监控生产系统(2-2)的相关文章

flash中通过XMLSocket监控生产系统(1)

xml|监控   可是B/S体系结构也不是万能的,由于其工作机制的限制,在某些领域,以前采用B/S体系结构就很难实现要求功能.典型情况下, Web页面和大多数Web应用使用了一种称为请求/响应的工作机制: o 使用者点击一个超级链接,或是提交一个表单等. o 浏览器向服务器发送请求. o 服务器启动一个会话. o 服务器经过处理后,把数据发送给浏览器. o 服务器关闭会话,浏览器显示数据. 我们可以看出,使用B/S体系结构设计软件时,无法回避两个限制:被动性与滞后性.首先,使用者必须通过浏览器请

flash中通过XMLSocket监控生产系统(3-1)

xml|监控 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  不断向客户端发送不同类型的有意义的XML数据,模拟生产系统的不同状态.考虑到功能的简便性,服务端只是每2秒向客户端发送一条随机类型的数据,而没有包括模拟生产系统及时的状态,如在某一时刻发生错误时,发送一条表示错误类型的数据,在实际设计编程中,基于本文中的例子,可以轻松扩展实现所需功能. public voi

flash中通过XMLSocket监控生产系统(3-2)

xml|监控 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  4) 选中 UI层,在工具箱选中文本工具,并在属性检查器中设置属性Show Border Around Text为真.文本类型为Dynamic Text(动态文本).文本为Multiline(多行),在Stage (舞台)上半部分画一个大的文本区域,把其实例名设为 txt.如图三,现在注意到,txt文本域具

flash中通过XMLSocket监控生产系统(2-1)

xml|监控   关键字:flash.XML.XMLSocket.TextField.Web方式.及时监控 二.技术介绍 1.XML 对象 通过使用该对象实例的方法与属性,可以加载.解析.发送.构造.和维护XML文档树.令人激动的是,在Flash的最新版本Flash MX中,XML 对象已经成为一个本地对象,即在FlashPlayer 6中内置对其的直接支持(Flash Player 5只有300多KB,而Flash Player 6却有800 KB,内置许多对象是相当大的原因.),因此,动态性

flash中通过XMLSocket监控生产系统(2-3)

xml|监控 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />  3) 输入域文本(Input Text) 和动态文本一样,它也是TextField对象的一个实例,可以在Flash属性检查器中为其设置唯一的实例名,然后就可以使用该实例名来使用相应的方法与属性以改变动态文本的内容与样式,与动态文本的是,它允许用户输入,并且具有剪切.复制.粘贴.全选等编辑功能. 本文所介绍的

数百台浪潮服务器支撑中石油油品加工生产系统

在以近七千万,78%占比大份额入围中石化年度集采后,浪潮在中石油又赢大单.日前,中国石油物资公司发布了<中国石油炼油与化工运行系统(2.0版)建设项目服务器及配套设备中标通知书>,浪潮双路.四路服务器成功中标,并成为此项目唯一中标的服务器厂商,中标金额达千万级.数百台服务器将作为数据库服务器,支持中石油生产系统--制造执行系统MES的建设,应用于中国石油炼化板块的26家炼化企业. 石化企业是典型的流程型行业,其核心业务流程复杂,主要包括原油储运.油品加工和产品发运三个主要业务,其中油品加工涵盖

Linux 系统中使用 logwatch 监控日志文件

Linux 系统中使用 logwatch 监控日志文件 Linux 操作系统和许多应用程序会创建特殊的文件来记录它们的运行事件,这些文件通常被称作"日志".当要了解操作系统或第三方应用程序的行为或进行故障排查时,这些系统日志或特定的应用程序日志文件是必不可少的的工具.但是,日志文件并没有您们所谓的"清晰"或"容易"这种程度的可读性.手工分析原始的日志文件简直是浪费时间,并且单调乏味.出于这个原因,对于系统管理员来说,发现任何一款能把原始的日志文件

生产系统中EXP-00000的问题及解决

早上刚来的时候,客户的dba就急忙找到我说生产系统exp出问题了.exp的时候报了错误,让我帮着看一下. >  exp xxxxx file=tui.dmp log=xxx.log Message 206 not found; No message file for product=RDBMS, facility=EXP: Release 11.2.0.2.0 - Production on Thu May 8 09:36:55 2014 Copyright (c) 1982, 2009, Or

谈Flash中的鼠标响应

鼠标|响应 大家都知道,Flash动画能够响应鼠标动作,从而实现各式各样的人机交互.常用的鼠标都有左中右三个键. 1.左键 鼠标左键在Windows系统下担负着神圣的职责,在Flash中也不例外.Flash能够自动捕获鼠标左键的动作,并根据捕获的动作激发内置的鼠标事件,再根据用户为这些事件编写的处理函数完成对鼠标左键的响应. 按钮和影片剪辑常常用来完成响应鼠标与实现交互的过程.对于按钮,可以用关键字on定义的事件处理函数来响应左键动作.其中,press表示左键按下的事件,release表示左键释