建站极客
网页制作 Flash 正文
AS3笔记(13),sendAndLoad的继承者
所属分类:
网页制作 / Flash
阅读数:
1738
收藏 0
赞 0
分享
在As2中LoadVars和XML都有sendAndLoad方法,该方法可以使用 POST 方法将参数发送到指定的URL,下载服务器的响应并接受参数.在As3.0之前,是最普及的数据通讯方法之一.在AS3.0以后,XML方法已经参照E4X的规范来定义,早就没有了sendAndLoad方法,而LoadVars 类更是消失的无影无踪了。 其实早在AS2中就可以发现,sendAndLoad方法的设计很不合理,在两中数据对象中存在且机制相同.现在好了,AS3.0中很好的封装了这一功能,这就是URLLoader的登场.URLLoader 类以文本、二进制数据或 URL 编码变量的形式从 URL 下载数据。 在下载文本文件、XML 或其它用于动态数据驱动应用程序的信息时,它很有用。可见,除了原有的variables和xml的数据加载方法,现在还多出了二进制数据方法,这个暂时不提,先说一下模拟AS2中两个sendAndLoad的方法。完成这些方法,我们还需要下列类的帮助: URLRequest 类 URLVariables类 URLRequest 类用以捕获单个HTTP 请求中的所有信息,URLVariables 类可以在Flash 应用程序和服务器之间传输变量.详细的说明请参看帮助.下例为一个sendAndLoad方法范例: sendAndLoadEX.as /*@ Author:frank Site:www.2solo.cn Date:2008.02.15 Info:sendAndLoad */ package { import flash.events.*; import flash.net.*; import flash.display.Sprite; public class sendAndLoadEX extends Sprite { private var xmlData:XML; private var uReq:URLRequest; private var uLoader:URLLoader=new URLLoader(); private var uVar:URLVariables=new URLVariables(); public function sendAndLoadEX() { startLoad(); } /* 加载url */ private function startLoad():void { //定义参数 uVar.param="You are now visting www.2solo.cn";//返回的参数 uVar.vtype="xml";//返回类型 //uVar.vtype = "var"; uReq=new URLRequest("your url"); //方法类型 uReq.method=URLRequestMethod.POST; uReq.data=uVar; //定义参数格式 uLoader.dataFormat=URLLoaderDataFormat.TEXT; //uLoader.dataFormat=URLLoaderDataFormat.VARIABLES; uLoader.addEventListener(Event.COMPLETE,completeHandler); uLoader.addEventListener(IOErrorEvent.IO_ERROR,ioErrorHandler); uLoader.load(uReq); } /* 加载成功 */ private function completeHandler(evt:Event):void { trace("成功"); //trace(evt.currentTarget.data.vars); xmlData=new XML(evt.currentTarget.data); parseXml(); } /* 加载失败 */ private function ioErrorHandler(evt:IOErrorEvent):void { trace("失败"); } /* 解析xml */ private function parseXml() { trace(xmlData.child("param")[0]); } } } 运行上例的输出结果为:"You are now visting www.2solo.cn".我在该例子中模拟的是XML.sendAndLoad方法,服务端我使用asp做测试,代码如下: test.asp <% Response.CodePage=65001 Response.Charset="UTF-8" if request("vtype")="xml" THEN response.write "<?xml version=""1.0"" encoding=""utf-8""?><data>" response.write "<param>"&request("param")&"</param>" response.write "</data>" ELSEIF request("vtype")="var" THEN response.write "vars="&request("param") END IF %> 在sendAndLoadEX.as中,uVar.param和uVar.vtype做为两个参数post给服务器端文件.uVar.param将作为参数返回,uVar.vtype则做为返回XML或Vars的判断.上例中,如要测试Loadvars.sendAndLoad,可以将: //uVar.vtype = "var"; //uLoader.dataFormat=URLLoaderDataFormat.VARIABLES; //trace(evt.currentTarget.data.vars); 的注释去掉,其中evt.currentTarget.data.vars属性直接来自test.asp的输出值,这点用原来的loadvars装载返回数据的方式一样。URLLoaderDataFormat有三个类型,除了TEXT,VARIABLES,还有BINARY做了二进制编码的格式.最后值得一提的是,AS3允许通过URLRequestHeader对文件头进行操作,这是一个很重要的提升. 最后附上本例源文件: http://xiazai.jb51.net/flash/sendAndLoadEX_2soloDOTcn.zip
火山动态文本滚动条V5[AS3版] 功能说明:本版滚动条除了继续保持体积小(小于2K),界面容易修改,资源占用率小的优势外,主要有以下几点改进:
1,使用AS3编写。
2,宽高动态指定。
3,增加滚动条背景点击事件。
4,消除了鼠标滚轮无法同时准确控制多个文本框的重大BUG。
评论 0
收藏 0
赞 0
分享
关于类、私有属性与继承的理解 学习FLASH的时间也不短了,但总觉得还有很多的东西在等我去弄清楚。而且有很多东西也是搞得似懂非懂。在这里,把类、私有属性跟继承的理解讲一下。也希望大家能无私补充,以臻佳景。
评论 0
收藏 0
赞 0
分享
FLASH自动判断域名然后转向等操作 FLASH自动判断域名,如果不是你的域名,然后干什么你来定吧!
首先说一下FLASH自已可以干什么!FLASH他可以判断自已在哪个路径下面,例如:
评论 0
收藏 0
赞 0
分享
Flex程序开发心得小结 和Flash的开发环境相比,Flex提供的组件库确实很诱人,但由于功能太全面,导致程序的体积大,有时候使用不当,可能会影响程序运行效率。
评论 0
收藏 0
赞 0
分享
关于FLASH与XML交互应用中的理解 关于XML在FLASH中的应用,以前写过几篇。也收集了几篇来自网络的。不过,都是一些非常简单而常用的。在这里,我把XML的其他相关说明总结一下。有不足之处,希望大家能相互补充。只为了一个共同的目的:共同提高。
评论 0
收藏 0
赞 0
分享
查看更多