用户名: 密码: 验证码: QQ--程序群:31736530 动画群:38836599
闪无忧
 
首 页 业界新闻 业界杂谈 Flash教程 Flash源码 Flash图书 Flash酷站 Flex & AIR 供求信息
   本栏目通告:   有意向写收费精品教程的朋友,请联系本站合作
当前位置 :首页>flash教程>Flash与Web>列表

Flash与后台数据交换方法整理1-URLLoader(URLStream)篇

[来源:http://www.klstudio.com | 作者:klstudio | 时间:2008-08-31 | 点击:  | 收藏本文  【 】]
[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端
  1. /**  
  2. * @author Kinglong  
  3. * @link http://www.klstudio.com  
  4. * @mail kinglong@gmail.com  
  5. * @version 0.1  
  6. */  
  7.   
  8. package project.test {   
  9.   
  10.        
  11.     import flash.display.*;   
  12.     import flash.events.*;   
  13.     import flash.net.*;    
  14.   
  15.     public class TestURLLoader extends Sprite {   
  16.         private var _loader:URLLoader;   
  17.         public function TestURLLoader() {   
  18.             //创建URLLoader对象;   
  19.             _loader = new URLLoader();   
  20.             //设置接收数据方式(文本、原始二进制数据、URL 编码变量);   
  21.             _loader.dataFormat = URLLoaderDataFormat.VARIABLES;   
  22.                
  23.             //设置事件侦听器   
  24.             configureListeners(_loader);   
  25.                
  26.             //设置传递参数;   
  27.             var params:URLVariables = new URLVariables();   
  28.             params.username = "kinglong";   
  29.             params.password = "king";   
  30.                
  31.             //建立Request访问对象;   
  32.             var request:URLRequest = new URLRequest("http://www.klstudio.com/none.jsp");   
  33.             //设置参数;   
  34.             request.data = params;             
  35.             //设置访问模式(POST,GET);   
  36.             request.method = URLRequestMethod.POST;            
  37.                
  38.             try {   
  39.                 loader.load(request);   
  40.             } catch (error:Error) {   
  41.                 trace(error);   
  42.             }   
  43.   
  44.                
  45.         }   
  46.         private function configureListeners(dispatcher:IEventDispatcher):void {   
  47.             //加载完成事件;   
  48.             dispatcher.addEventListener(Event.COMPLETE, loaderHandler);   
  49.             //开始访问事件;   
  50.             dispatcher.addEventListener(Event.OPEN, loaderHandler);   
  51.             //加载进度事件;   
  52.             dispatcher.addEventListener(ProgressEvent.PROGRESS, loaderHandler);   
  53.             //跨域访问安全策略事件;   
  54.             dispatcher.addEventListener(SecurityErrorEvent.SECURITY_ERROR, loaderHandler);   
  55.             //Http状态事件;   
  56.             dispatcher.addEventListener(HTTPStatusEvent.HTTP_STATUS, loaderHandler);   
  57.             //访问出错事件;   
  58.             dispatcher.addEventListener(IOErrorEvent.IO_ERROR, loaderHandler);   
  59.         }   
  60.            
  61.         private function loaderHandler(event:*):void {   
  62.             switch(event.type) {   
  63.                 case Event.COMPLETE:   
  64.                     trace(_loader.data.result);   
  65.                     break;   
  66.                 case Event.OPEN:   
  67.                     trace("open: " + event);   
  68.                     break;   
  69.                 case ProgressEvent.PROGRESS:   
  70.                     trace("progress: " + event);   
  71.                     break;   
  72.                 case SecurityErrorEvent.SECURITY_ERROR:   
  73.                     trace("securityError: " + event);   
  74.                     break;   
  75.                 case HTTPStatusEvent.HTTP_STATUS:   
  76.                     trace("httpStatus: " + event);   
  77.                     break;   
  78.                 case IOErrorEvent.IO_ERROR:   
  79.                     trace("ioError: " + event);   
  80.                     break;   
  81.                    
  82.             }   
  83.         }         
  84.   
  85.     }      
  86. }   


服务端(jsp)
  1. <%@ page contentType="text/html; charset=utf-8" language="java" import="java.sql.*" errorPage="" %>  
  2. <%   
  3. String username = request.getParameter("username");   
  4. String password = request.getParameter("password");   
  5. boolean result = false;   
  6. //访问数据...;   
  7. out.println("result="+result+"&_");   
  8. %>  


优点:
1、flash代码实现起来简单,方便。
2、服务端接收页面和接收一个表单过来的数据一样处理,不需要专门的技术,所有服务端程序都可以实现!
3、可以发送字符串变量,也可以发送文件流([AS3]URLLoader+URLRequest+JPGEncoder实现BitmapData图片数据保存)。
4、可以结合AMF3接收更为丰富的数据类型([AS3]AMF3+JAVA的调用范例)。
缺点:
1、传递的变量不宜过多。
2、变量传递的值不宜过长。
注意:
如果接收数据类型设置成URLLoaderDataFormat.VARIABLES后,第一个字符不能以&开头,结尾部分建议以&_为结束比较好。
文章如果有错误或者缺少文件,请发邮件提交给我们
上一篇:flash左侧菜单导航栏的制作详解
下一篇:FLASH与JS通信:当FLASH有消息时IE窗口高亮显示
Tags:    
>>> 最新评论:(共有 0 位网友发表了评论)      查看所有评论
  发表评论
用户名: 新注册) 密码: 匿名评论
评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
·本站发布内容均为客观表达作者观点,不代表闪无忧立场,请勿攻击和漫骂
·用户发表意见仅代表其个人意见,并且承担一切因发表内容引起的纠纷和责任
·本站管理人员有权在不通知用户的情况下删除不符合规定的评论信息或留做证据
·请客观的评价您所看到的资讯,提倡就事论事,杜绝漫骂和人身攻击等不文明行为
  教程分类
  基础操作   动画特效
  应用开发   组件学习
  As程序   动画教程
  Flash cs3   AS 3.0
  FCS/FMS教程   Loading教程
  Flash与Web   Flash教程连载
  相关文章
·FLASH与JS通信:当FLASH有消息时
·Flash与后台数据交换方法整理1-U
·flash左侧菜单导航栏的制作详解
·flash插入网页技巧-让浏览器响应
·JavaScript与Flash的通信解析
·flash与html之间的“静态”传值
·flash里做新闻信息列表按日期,按
·简单asp加载access数据库并生成X
·flash改变网页的背景颜色
·关于XML在FLASH交互应用中的理解
  热门文章
·Flash进度条的制作详细讲解(组图)
·flash幻灯片网页效果
·Flex 3 AdvancedDataGrid的使用(第二
·全Flash动画网站实现的基础教学
·flash水影效果字
·Flash打造简单的飘雪动画视觉特效
·FLASH+XML相册(附源码)
·超酷flash光晕移动效果
·Flash旋转拖尾文字效果的制作教程
·Flash制作大雪纷飞效果动画
·flash春雷闪电效果
关于我们 - 免责声明 - 网站地图 - 商务服务 - 联系我们 - RSS地图
©CopyRight 2006-2008, 5UFlash.COM, Inc. All Rights Reserved
鲁ICP备06034971号