网上找到几篇文章,是flash和后台数据交换的几种方式,个人看重xml socket
转自kinglong
[AS3]Flash与后台数据交换方法整理1-URLLoader(URLStream)篇
PS.
随着Flash Player 9的普及,AS3编程也越来越多了,所以这次重新整理AS3下几种与后台数据交换方法。
1.URLLoader(URLStream)
2.FlashRemoting
3.XMLSocket(Socket)
4.FMS/FCS
一、URLLoader(URLStream)篇
URLStream和URLLoader中URLLoaderDataFormat.BINARY类似,它提供对下载 URL 的低级访问方式,我在此不再重复了,有兴趣的,可以看Flash帮助中URLStream类。
Flash端
- /**
- * @author Kinglong
- * @link http://www.klstudio.com
- * @mail kinglong@gmail.com
- * @version 0.1
- */
- package project.test {
- import flash.display.*;
- import flash.events.*;
- import flash.net.*;
- public class TestURLLoader extends Sprite {
- private var _loader:URLLoader;
- public function TestURLLoader() {
- //创建URLLoader对象;
- _loader = new URLLoader();
- //设置接收数据方式(文本、原始二进制数据、URL 编码变量);
- _loader.dataFormat = URLLoaderDataFormat.VARIABLES;
- //设置事件侦听器
- configureListeners(_loader);
- //设置传递参数;
- var params:URLVariables = new URLVariables();
- params.username = "kinglong";
- params.password = "king";
- //建立Request访问对象;
- var request:URLRequest = new URLRequest("http://www.klstudio.com/none.jsp");
- //设置参数;
- request.data = params;
- //设置访问模式(POST,GET);
- request.method = URLRequestMethod.POST;
- try {
- loader.load(request);
- } catch (error:Error) {
- trace(error);
- }
- }
- private function configureListeners(dispatcher:IEventDispatcher):void {
- //加载完成事件;
- dispatcher.addEventListener(Event.COMPLETE, loaderHandler);
- //开始访问事件;
- dispatcher.addEventListener(Event.OPEN, loaderHandler);
- //加载进度事件;
- dispatcher.addEventListener(ProgressEvent.PROGRESS, loaderHandler);
- //跨域访问安全策略事件;
- dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loaderHandler);
- //Http状态事件;
- dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, loaderHandler);
- //访问出错事件;
- dispatcher.addEventListener(IOErrorEvent.IO_ERROR, loaderHandler);
- }
- private function loaderHandler(event:*):void {
- switch(event.type) {
- case Event.COMPLETE:
- trace(_loader.data.result);
- break;
- case Event.OPEN:
- trace("open: " + event);
- break;
- case ProgressEvent.PROGRESS:
- trace("progress: " + event);
- break;
- case SecurityErrorEvent.SECURITY_ERROR:
- trace("securityError: " + event);
- break;
- case HTTPStatusEvent.HTTP_STATUS:
- trace("httpStatus: " + event);
- break;
- case IOErrorEvent.IO_ERROR:
- trace("ioError: " + event);
- break;
- }
- }
- }
- }