- 浏览: 13730706 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (1994)
- Php / Pear / Mysql / Node.js (378)
- Javascript /Jquery / Bootstrap / Web (435)
- Phone / IOS / Objective-C / Swift (137)
- Ubuntu / Mac / Github / Aptana / Nginx / Shell / Linux (335)
- Perl / Koha / Ruby / Markdown (8)
- Java / Jsp (12)
- Python 2 / Wxpython (25)
- Codeigniter / CakePHP (32)
- Div / Css / XML / HTML5 (179)
- WP / Joomla! / Magento / Shopify / Drupal / Moodle / Zimbra (275)
- Apache / VPN / Software (31)
- AS3.0/2.0 / Flex / Flash (45)
- Smarty (6)
- SEO (24)
- Google / Facebook / Pinterest / SNS (80)
- Tools (22)
最新评论
-
1455975567:
xuezhongyu01 写道wocan23 写道我想问下那个 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
xuezhongyu01:
wocan23 写道我想问下那个111.1是怎么得来的我也看不 ...
Mysql: LBS实现查找附近的人 (两经纬度之间的距离) -
18335864773:
试试 pageoffice 在线打开 PDF 文件吧. pag ...
jquery在线预览PDF文件,打开PDF文件 -
青春依旧:
opacity: 0.5; 个人喜欢这种方式!关于其他css特 ...
css透明度的设置 (兼容所有浏览器) -
July01:
推荐用StratoIO打印控件,浏览器和系统的兼容性都很好,而 ...
搞定网页打印自动分页问题
目前flash在各方个面的应用越来越广,而flash也不单只是注重自身绚丽的效果,也需要和外界程序交换数据,以实现更强大的功能,随着as3 的到来,flash和外部交互的方式也越来越简便和合理化。今天就在这里谈谈as3和后台数据的交互(这里选择as3+php架构,其他配置同理)。
在as3里,原来的loadVars方法已经被废弃,而改用一系列的类来实现与后台数据的交互,这些类是:URLLoader,URLLoaderDataFormat,URLStream,URLVariables。
URLLoader
类和原来的loadVars类似,是加载文本,2进制数据,xml,URL数据等信息的有力工具。URLLoader接受一个URLRequest
作为构造的参数,使用load方法来加载数据。URLLoder也可以进行监听,这点也loadVars不同,一个简单的示例如下
//////////////////actionscript code////////////////////////////////////////// //声明一个URLLoader var loader:URLLoader = new URLLoader(); //监听数载加载完成事件 loader.addEventListener(Event.COMPLETE,loaded); //事件相应函数 function loaded(e:Event)...{ trace(loader.data); // output : this data is from php! } //加载test.php loader.load(new URLRequest("test.php"));
// ////////////////test.php code///////////////////////////////// <?php //声明一个变量并赋给一个字符串 $data ='this data is form php!'; //输出这个变量给flash echo $data; ?>
从上面的示例可以看出,as3和后台交互是多么简单,但这只是单项的交互,如果要flash向后台发送数据并传回数据该如何去做呢?这个时候你可能会把代码该成这样:
//actionscript code var loader:URLLoader = new URLLoader(); loader.data=...{message:"hello im flash!"}; loader.addEventListener(Event.COMPLETE,loaded); function loaded(e:Event)...{ trace(loader.data); // output : this is flash say: } loader.load(new URLRequest("test.php"));
//test.php code// <?php $flashData = $_POST['message']; echo "this is flash say:$flashData"; ?>
看 看输出的代码,你得到了什么?是的,信息并没有传输到php,你还是在用loadVars的方式试图传送数据,但as3里已经不是这样了, URLLoader的data只有在数据被下载完时才会被初始化,在数据没有加载完成时,它是等于null的,也就是说,它只包含接受到的数据,而不管要 发送的数据,那么,as3里如何向后台发送数据呢?使用URLVariables。
URLVariables允许你在flash和后台程序间传输变量, as3里已经把发送和接受数据分离,再也不像as2的loadVars那样,一个类通吃所有了,那么这个URLVariables如何送要发送的数据呢?
你 可能找遍了URLLoader的文档也没有发现与它相关的东西,是的URLLoader并不和URLVariables有关联,而是
URLRequest在使用它,URLRequest包含整个http请求的所有信息,所以我们要发送的数据要放在这里,URLRequest有一个
data属性他接受一个object类型的参数,这就是我们要发送的数据。同时你可能还注意到了,URLRequest也管理用什么样的方式来发送
http请求,它的method属性接受一个字符参数,post或者是get。好了,现在我们来看看它们是怎么工作的:
//actionscript code var loader:URLLoader = new URLLoader(); //声明一个URLRequest var url:URLRequest = new URLRequest("test.php"); //设置传输方式为POST url.method = URLRequestMethod.POST; //声明一个URLVariables var values:URLVariables = new URLVariables(); //设置要传输的信息 values.message="hello im flash!"; url.data = values; loader.addEventListener(Event.COMPLETE,loaded); function loaded(e:Event)...{ trace(loader.data); // output : this is flash say:hello im flash! } loader.load(url);
//test.php code// <?php $flashData = $_POST['message']; echo "this is flash say:$flashData"; ?>
怎 么样,是不是也很方便的实现了as3和后台的数据传输?恩,现在我们的程序可以双向交互数据了,但这只是一些简单的数据,如果你要传输带有结构的数据, (熟悉as2的人都知道loadVars可以自动解析下载数据的结构),让我们先按loadVars的方式来尝试下,看看URLLoader是不是能自动 的解析下载的数据。
//actionscript code var loader:URLLoader = new URLLoader(); //声明一个URLRequest var url:URLRequest = new URLRequest("test.php"); //设置传输方式为POST url.method = URLRequestMethod.POST; //声明一个URLVariables var values:URLVariables = new URLVariables(); //设置要传输的信息 values.message="hello im flash!"; url.data = values; loader.addEventListener(Event.COMPLETE,loaded); function loaded(e:Event)...{ trace(loader.data); //outPut: phpMessage=im php message!&flashMessage=hello im flash! trace(loader.data.phpMessage); // thorw Error; trace(loader.data.flashMessage); // thorw Error; } loader.load(url); //test.php code// <?php $flashData = $_POST['message']; $phpMessage = 'im php message!'; echo "phpMessage=$phpMessage&flashMessage=$flashData"; ?>
可 以看到,数据被完全下载下来了,但是却没有被解析,还抛出了异常,那么是不是URLLoader就不能自动解析数据了呢?不是,相反URLLoader 提供了多种数据解析方式供你选择。这些数据解析方式都在URLLoaderDataFormat里,他们是:BINARY-以2进制的方式解析 TEXT-以文本的方式解析 VARIABLES-以变量-值配对的方式解析。URLLoader的dataFormat属性提供了对解析方式的选择,好,我们再来修改下程序使它变的 更完美些:
//actionscript code var loader:URLLoader = new URLLoader(); //声明一个URLRequest var url:URLRequest = new URLRequest("test.php"); //设置传输方式为POST url.method = URLRequestMethod.POST; //声明一个URLVariables var values:URLVariables = new URLVariables(); //设置要传输的信息 values.message="hello im flash!"; url.data = values; //设置以变量-值配对的方式解析数据 loader.dataFormat = URLLoaderDataFormat.VARIABLES; loader.addEventListener(Event.COMPLETE,loaded); function loaded(e:Event)...{ trace(loader.data); //outPut: phpMessage=im php message!&flashMessage=hello im flash! trace(loader.data.phpMessage); // im php message! trace(loader.data.flashMessage); // hello im flash! } loader.load(url); //test.php code// <?php $flashData = $_POST['message']; $phpMessage = 'im php message!'; echo "phpMessage=$phpMessage&flashMessage=$flashData"; ?>
以上这些就是as3里和后台交互的基础内容,现在你可以在as3里创建这样的交互,获取动态数据来丰富你的程序,在你开始自己动手实验之前,还有一些东西值得注意:
1,记得捕获和处理异常(上述的例子里都是假定在完美的测试环境下运行,所以没有加上异常捕获和处理的代码,但现实中你可能会遇到各种各样的情况)URLLoader可能引发好几种异常情况(详细请参见说明文档)
你应该通过监听ioError和securityError事件,或者通过try-catch来处理他们,即使你确信不会发生这样的问题。
2,文件的编码,这是个常见的问题,经常很多数据变成了乱码,或者解析出错,都是因为编码的问题,我的做法是确保发送的数据和后台传回的数据都是UTF-8格式(因为flash默认编码为utf-8)
最后希望这篇文章能对你有所帮助,也欢迎你留言讨论相关的问题。
发表评论
-
iPhone、iPad 如何播放网页调用优酷视频?
2013-09-26 14:30 17735在线视频一般都是基 ... -
Scrolling Dynamically Loaded Text (as2)
2010-07-02 05:04 1960One quest ... -
flashAndPHP 简单交互
2010-06-17 01:53 1961第一章: flash,php 和 mysql ... -
交互动画按钮
2010-06-16 23:44 3724交互动画按钮 按钮元件是 Flash 的基本 ... -
引导路径动画 (2)
2010-06-16 23:41 18004.实例2——海底世界 ... -
引导路径动画 (1)
2010-06-16 23:31 3560引导路径动画(1) 在前面几节里,我们已经给大家介 ... -
动画基础
2010-06-16 23:22 1630动画的舞台结构及道具组合(1) 动画是一种动态 ... -
逐帧动画与夸张表情动画
2010-06-16 23:18 6478夸张表情动画的制作(1) (转之ET动画学堂) ... -
形状补间动画
2010-06-16 23:15 5480形状补间动画(1) ... -
逐帧动画与人运动动画制作
2010-06-16 23:11 5040人走路动画制作 ... -
动作补间动画
2010-06-16 23:07 4666动作补间动画(1) ... -
遮罩动画
2010-06-16 22:55 3575遮罩动画(1) ... -
Popup window ActionScript3 VS ActionScript2
2010-06-09 04:17 2664A common ... -
加载loader (How to Load External Images in Actionscript 3.0)
2010-05-28 02:18 1849Using the flash.display.Lo ... -
元件变色 change movieclip's color
2010-05-28 01:34 1905// This line defines a varia ... -
Flash AS3获取PHP数据(ActionScript3 + php + email)送ActionScript2
2010-04-23 21:11 5833一,AS3部分[下载 ] package { ... -
flex与flash元件交互
2010-01-30 04:31 1923前一段时间发了flex与JavaScript的数据交互 ,现 ... -
FLEX里的CSS样式设置教材
2010-01-29 00:38 2402FLEX3中应用 CSS完全详解 ... -
flex 扇形菜单
2010-01-29 00:27 9224在继 auzn经典Flex教程–KingnareStyle ... -
flex 画线
2010-01-29 00:23 3538实例1: <?xml version=" ...
相关推荐
通过创建XMLSocket对象并连接到PHP服务器,AS3可以发送和接收数据。PHP端可以通过socket服务处理这些通信,实现数据交换。 2. **AMF通信**:Adobe Message Format (AMF) 是一种高效的数据交换格式,允许AS3和PHP...
【AS3+PHP留言板系统详解】 在Web开发中,客户端与服务器端的交互是一个关键环节。ActionScript 3(简称AS3)是Adobe Flash Player和Adobe AIR中的编程语言,而PHP是一种广泛使用的开源脚本语言,尤其适用于Web开发...
4. **网络通信**:AS3和PHP通过TCP Socket建立连接,传输数据。 这个简单的聊天室项目为初学者提供了一个很好的实践平台,让他们了解如何结合AS3和PHP实现实时通信。对于更复杂的应用场景,如高并发、大规模用户群...
标题中的“Flash AS3获取PHP数据(ActionScript3 + php + email)送ActionScript2”表明这个项目涉及了几个关键的技术领域:ActionScript3、PHP和电子邮件处理。ActionScript3是Adobe Flash Player支持的一种编程...
在IT行业中,PHP和ActionScript 3(AS3)是两种不同的编程语言,它们分别用于服务器端和客户端的开发。本资源"php.rar_as3"包含了一组代码示例,展示了如何实现PHP与AS3之间的通信,这对于构建跨平台的Web应用程序...
在Adobe Flash Professional CS5或更新版本的环境中,ActionScript 3(AS3)提供了一套强大的网络通信工具,包括`URLRequest`、`URLLoader`等类,这些类替代了早期版本中的`LoadVars`方法,使得与服务器的交互更加...
标题中的“as3+php+sql 制作的相册 源文件”指的是一个使用ActionScript 3(AS3)编程语言、PHP服务器端脚本语言以及SQL数据库语言共同开发的相册应用。这个应用可能允许用户上传、查看、管理个人照片,实现了客户端...
在本文中,我们将深入探讨如何使用Flash AS3实现本地录音并将其压缩为MP3格式,然后直接上传到服务器。这个过程不再需要通过FMS(Flash Media Server)进行中转,大大提高了效率。以下是对该技术的详细解释: 1. **...
AS3连接MySQL通常需要一个服务器端组件来处理实际的数据库交互,如PHP、Java或ColdFusion。例如,使用AMFPHP,我们需要在服务器上安装AMFPHP框架,创建一个服务端脚本来处理AS3的AMF请求。客户端AS3代码将通过...
### 一、AS3.0连接PHP AS3.0可以通过发送XMLHttpRequest(也称为Ajax请求)到PHP脚本来与服务器进行通信。首先,我们需要在AS3.0代码中创建一个`URLLoader`对象来加载PHP脚本的响应,同时使用`URLRequest`对象指定...
在IT行业中,Flash AS3(ActionScript 3)是一种广泛应用于创建交互式内容、游戏和动画的编程语言,尤其在过去的视频播放器开发领域中占据了重要地位。Flash AS3视频播放器是基于Adobe Flash Player运行时环境的,它...
根据给定的文件信息,我们可以总结出以下关于PHP连接各种数据库的重要知识点: ### 1. PHP连接MySQL数据库 在PHP中连接MySQL数据库是最常见的操作之一。以下是一个基本的示例,展示如何使用PHP连接到一个MySQL...
2. JS as Socket PHP:这里的“JS as Socket PHP”可能指的是使用JavaScript实现WebSocket协议,WebSocket提供全双工、低延迟的双向通信,常用于实时数据传输,如聊天应用或在线游戏。在JavaScript中,可以使用`...
【标题】:“Flash AS3 无需数据库 在线聊天室” 【描述】中的知识点解析: Flash AS3 是Adobe Flash Professional中的编程语言版本,它基于ActionScript 3.0,相较于之前的版本,AS3提供了更强的性能、更严谨的...
3. **连接服务器**:调用方法连接至POP3服务器,可选择是否使用SSL/TLS加密。 4. **执行操作**:根据需求调用相应的方法,如列表邮件、检索邮件、删除邮件等。 5. **断开连接**:操作完成后,调用断开连接的方法释放...
php_sqlsrv驱动是Microsoft专门为PHP设计的一个数据库访问接口,它允许PHP应用程序无缝连接到SQL Server数据库。该驱动提供了一系列的函数,用于执行SQL查询、处理结果集、事务管理等,极大地丰富了PHP对SQL Server...
### Linux AS4下PHP、Apache、MySQL整合安装详解 在Linux AS4环境下,整合安装PHP、Apache、MySQL是一项常见的操作,适用于搭建Web开发环境。本文将详细介绍这一过程,包括环境准备、具体步骤以及常见问题解决。 #...
这是用php写的socket服务器,再加上as写的socket客户端进行的通信,里面有源码,有注释,有说明文档。实现了简单的socket创建,绑定,监听socket连接及关闭,接受消息,发送消息,关闭socket连接等功能。
通过socket方式传送swf文件来避免泄漏源代码的思路(只适用as3): 让主程序的loader(前台swf)通过socket连接到后台程序,然后请求需要的主程序文件.后台读取主程序数据通过socket发送给主程序的 loader.前台swf适用...
; Windows Extensions ; Note that ODBC support is built in so no dll is ... extension folders as well as the separate PECL DLL download PHP 5 ; Be sure to appropriately set the extension dir directive