web即时通信的Flex解决方案
提到web即时通信,可能大家立即会想到ajax定时请求、服务器推等解决方案,但这里我要说的是一种综合的解决方案,使用Adobe的Flex XmlSocket、javascript以及服务器端技术,建立真正的web即时通信。当然这还受益于flash的普及,大部分用户的浏览器都安装了Flash player插件,从而保证此方案维持了web技术无须客户端部署的优势。
XmlSocket采用TCP方式与服务器进行连接,首先要编写一个ActionScript通讯组件并编译的成swf格式,并在HTML的DOM中嵌入此组件,以建立与服务器的连接和数据通信,然后使用javascript与AS组件交互,以处理接收到的数据(建议采用javascript容易解析的JSON或XML数据格式),当然也可以使用其他可与flash交互的脚本语言,而服务器端需要建立一个TCP服务器来处理连接请求和发送数据。此处特别要强调的是策略文件,即flex的安全沙箱问题,这是Adobe在Flash Player 9.0.124.0及以后的更高版本中的安全策略,无论连接到哪一个端口(即使连接到提供 SWF 文件的同一主机上的端口),目标主机上都需要套接字策略文件,建议侦听843端口来发送策略文件,当然也可以通过主通信端口来发送,详细策略文件格式请参照http://www.adobe.com/devnet/flashplayer/articles/socket_policy_files.html。
以下是连接服务器8000端口的ActionScript代码:
package {
import flash.display.Sprite;
import flash.events.*;
import flash.net.XMLSocket;
public class XMLSocketExample extends Sprite {
private var hostName:String = "localhost";
private var port:uint = 8000;
private var socket:XMLSocket;
public function XMLSocketExample() {
socket = new XMLSocket();
configureListeners(socket);
if (hostName && port) {
&n
相关文档:
1月17日
Flex开源框架汇总
Cairngorm (download)
Cairngorm是一个最早最为成熟的FLEX框架,现在已归为ADOBE门下.
PureMVC (download)
它其实是一个ActionScript 3框架,不像Cairngorm,它并不是针对FLASH,FLEX或者其它ADOBE AS3.0类。它是一个用于开发基于FLASH的AS 3.0的任何程序.
Model-Glue: Flex (download)
Model- ......
Getting Around Bug in Adobe Flex: TabControl Inline Event Handling for TabIndexChange Doesn't Work
I ran into this because I wanted to do something funky. I wanted my Flex app window to change PageStates (and size) whenever the TabIndex changed. Whether doing this kind of thing is wise ......
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
<mx:Script>
<![CDATA[
function chkbox():void
{
var menssage:String = "";
if (c ......
转自:http://www.cnblogs.com/jiahuafu/archive/2009/03/20/1417679.html
在Flex Application里,是不能直接用addChild添加Sprite,MovieClip等来自flash.display包里的类的。譬如以下代码就会报错:
private function init():void
{
var sp:Sprite = new Sprite();
addChild(sp);
}
TypeEr ......