[原]as3 flash web 应用 (7)flash与php的交互(A)
发布时间:2020-12-15 06:46:43 所属栏目:百科 来源:网络整理
导读:2010年06月20日 星期日 18:05 由于某度众所周知的铜臭举动,我搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了。这些都是文章备份。勿怪。。 鉴于最近有些抓取机器和抄袭者,把标题的【原】字都复制,我不得不声明:本文为 yukon12345原创,转载请注明
2010年06月20日 星期日 18:05 由于某度众所周知的铜臭举动,我搬离写了5年的渣度空间,准备把技术性的文章定在CSDN了。这些都是文章备份。勿怪。。 鉴于最近有些抓取机器和抄袭者,把标题的【原】字都复制,我不得不声明:本文为 yukon12345原创,转载请注明出处http://blog.csdn.net/yukon12345 上面几篇讲了as3和js的交互,现在来讲as3与php的交互 和ajax有一点相似,发送消息给服务器,然后等待获取消息。不过是完全异步的,而且比ajax方便很多,因为不用考虑各种浏览器的支持方式,处理xml也比较容易。 首先要清楚几个as3的类,分别是URLLoader,我们可以理解为信息装载器,就像一个触摸显示器,提供一个交互的接口 然后是URLRequest,可发起各种发送和接收的请求, 最后是URLVariables,是一个用于格式化放入发送给php消息的类。 先是最简单的: 1.取回php的文本消息。 as3: var loader=new URLLoader() //一个装载器 var urlR=new URLRequest() //请求类 urlR.url="http://127.0.0.1/upload/8php/repeat.php" //请求地址 var txt=new TextField() txt.width=300 txt.x=20 txt.y=30 addChild(txt) loader.addEventListener(Event.COMPLETE,function(){ txt.text=loader.data //当接收完毕后获取装载器取回的消息 }) loader.load(urlR)//发送请求 php页面中: echo"whoa冯阿三的"; 这样即可看到flash里显示php返回的消息 2.发送给PHP消息,php接收后返回文本数据。 如果要发送消息给php,就需要URLVariables类来格式化数据了 as3 var loader=new URLLoader() var urlR=new URLRequest() urlR.method=URLRequestMethod.POST //设定发送类型为post urlR.url="http://127.0.0.1/upload/8php/repeat2.php" var variable=new URLVariables() //初始化一个URLVariables,然后格式化各种数据 variable.name1="from flash~~~" variable.name2="this is 2" urlR.data=variable //赋值请求数据 var txt=new TextField() txt.width=300 txt.x=20 txt.y=30 addChild(txt) loader.addEventListener(Event.COMPLETE,function(){ txt.text=loader.data }) loader.load(urlR) php页面中: if (isset($_POST["name1"])){ echo "这是flash 发来的变量name1的值:".$_POST["name1"]; } 3,发送给php 消息,php接收后返回URL参数数据。 需要设置loader的接收格式为VARIABLES as3: var loader=new URLLoader() //设置装载器的接收格式为URL参数格式 loader.dataFormat=URLLoaderDataFormat.VARIABLES var urlR=new URLRequest() urlR.method=URLRequestMethod.POST urlR.url="http://127.0.0.1/upload/8php/repeat3.php" var variable=new URLVariables() variable.name1="from flash~~~" variable.name2="this is 2" urlR.data=variable var txt=new TextField() txt.width=300 txt.x=20 txt.y=30 addChild(txt) loader.addEventListener(Event.COMPLETE,function(){ //接收到的数据 txt.text=loader.data.phpData2+loader.data.phpData1 }) loader.load(urlR) php页面中: if (isset($_POST["name1"])){ echo "phpData1=".$_POST["name1"]."&phpData2=sdfsdfds"; } 4.发送给php消息,php返回XML格式数据 as3 var loader=new URLLoader() //注意设置装载器的接收格式为TEXT loader.dataFormat=URLLoaderDataFormat.TEXT var urlR=new URLRequest() urlR.method=URLRequestMethod.POST urlR.url="http://127.0.0.1/upload/8php/repeat4.php" var variable=new URLVariables() variable.name="[图片名]" variable.path="[图片地址]" urlR.data=variable var txt=new TextField() txt.width=300 txt.x=20 txt.y=30 addChild(txt) loader.addEventListener(Event.COMPLETE,function(){ //将接收的文本xml化 var xml=new XML(loader.data) //选择呈现xml数据 txt.text=xml.image[0].@path+xml.image[0].@name }) loader.load(urlR) php页面中: if (isset($_POST["name"])){ $xml="<root>n"; $xml.='<image name="'.$_POST["name"].'" path="'.$_POST["path"].'"/>'."n"; $xml.="</root>"; } echo '<?xml version="1.0" encoding="urf-8"?>'."n"; echo $xml; 上面4个例子比较推荐xml格式,因为容易实现数据通用,系统集成。 源文件下载 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |