- 浏览: 13730696 次
- 性别:
- 来自: 洛杉矶
文章分类
- 全部博客 (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,php 和 mysql 之间的连接
讲讲 flash ( ActionScript ), php 及 mysql 之间的连接,他们三者是如何实现数据相互传送和接收的。在开始之前,请确保您做了如下的准备工作:
1, 配置了 apache 服务器, php , mysql 等都配置成功。
2, 安装了 flash cs3 或更高的版本。
如果在配置服务器有任何问题,在网站上搜索一下相关的关键字。应该能顺利解决问题。
Flash 提供了很多种不同的连接方式,究竟要用那种连接方式来完成项目应根据项目的特点。
单向通行:
Flash 中的单向通信只是将数据发送给 web 服务器,并不关心服务器是否返回响应和做出什么样的响应。这种通信方式大多数时候用于打开一个 url 连接,例如:
var serverFile:String=”http://localhost/callLink.php”; var urlRequest:URLRequest=new URLRequest(serverFile); navigateToURL(urlRequest);
注: navigateToURL 函数接受两个参数,第一个参数是 URLRequest 的实例,第二个参数叫做窗口(或目标)。默认情况是 _self 。还可以是: ”_blank”,”_parent”,”_top” 。
在 flash 中还有一种和 navigateToURL 类似的单一连接方式, sendToURL ();它与 navigateToURL 的不同之处在于它不会单独的开一个 web 页面,而是悄悄的把数据发送到 web 服务器,不会妨碍用户的浏览体验。例如:
var serverFile:String=”http://localhost/callLink.php”; var urlRequest:URLRequest=new URLRequest(serverFile); try { sendToURL(urlRequest); } Catch(e:Error) { //处理错误 }
发送数据到服务器
在很多种情况下,你可能不仅仅只是想发送一个 url ,你需要在请求一个 url 的同时向服务器发送一些数据。这是,你需要用到 URLVariables 类,这个类能创建包含键值对的对象。这些键值对和标准的 Html 中请求的键值对是相同的。
var serverFile:String=”http://localhost/callLink.php”; var variables:URLVariables=new URLVariables(); variables.id=1004; variables.user=”James”; var urlRequest:URLRequest=new URLRequest(serverFile); urlRequest.data=variables; try { sendToURL(urlRequest); } Catch(e:Error) { //处理错误 }
上面发送数据的方式是不安全的,因为默认使用的是 get 方式的,这种方式会将数据显示在浏览器的地址栏中。要想安全的发送一些敏感的数据,我们要显示的说明使用 post 传送方式。如下:
var serverFile:String=”http://localhost/callLink.php”; var variables:URLVariables=new URLVariables(); variables.id=1004; variables.user=”James”; var urlRequest:URLRequest=new URLRequest(serverFile); urlRequest.method=URLRequestMethod.POST; urlRequest.data=variables; try { sendToURL(urlRequest); } Catch(e:Error) { //处理错误 }
双向通信
有些时候你可能想在发送数据后接收一个来自服务器的响应。例如从数据库加载指定用户的信息,你发送用户 ID 并希望接收到有关该用户的信息。
双向通信中的响应一般都由事件监听器处理。例如:
var serverFile:String=”http://localhost/callLink.php”; var variables:URLVariables=new URLVariables(); variables.id=1004; variables.user=”James”; var urlRequest:URLRequest=new URLRequest(serverFile); urlRequest.method=URLRequestMethod.POST; urlRequest.data=variables; var urlLoader:URLLoader=new URLLoader(); urlLoader.addEventListener(Event.COMPLETE,userResponseHandler); try { urlLoader.load(urlRequest); } catch(e:Error) { //处理错误 } //处理函数 function userResponseHandler(e:Event):void{ var urlLoader:URLLoader=URLLoader(e.target); var args:URLVariables=new URLVariables(urlLoader.data); trace(“User Data:”+args.response); }
连接 flash 到 php
先看下面的例子:
首先我们定义一个变量来代表你的服务器的地址:
var phpFile:String=”http://localhost/connecting/exampleCom.php”; //在flash中创作一个按钮,并为按钮增加鼠标事件监听器:当按钮按下时调用如下函数: function callServer(e:MouseEvent):void{ var urlRequest:URLRequest=new URLRequest(phpFile); var loader:URLLoader=new URLLoader(); loader.addEventListener(Event.COMPLETE,serverResponse); loader.load(urlRequest); }
上面的函数创建了 URLLoader 和 URLRequest 实例;但数据加载完成时会调用下面的函数:
function serverResponse(e:Event):void{ var loader:URLLoader=URLLoader(e.target); var variables:URLVariables=new URLVariables(loader.data); //timeTxt为flash中创建的动态文本域,returnValue为php中定义的键值对的键名。 timeTxt.text=variables.returnValue; } //callBtn为flash中按钮的实例名 callBtn.addEventListener(MouseEvent.CLICK,callServer);
exampleCom.php 中的代码非常的简单,如下:
<?php // 下面是一个简单的 php 中键值对信息 print “returnValue=Hello from PHP,time is:”.time(); ?>
php 中多个键值对的信息表示如下:
<?php $userData=”username=James”; $userData .=”&id=1004”; $userData .=”&level=Reader”; print $userData; ?>
上面代码的作用就是当 flash 加载这个 php 文件时,它向 php 创送如下的数据:
username=Jame&id=1004&level=Reader;
注意到上面的键值对信息很像标准的 POST 的 data 。
链接到 MySql
使 php 链接到 php 是很简单的。当你把 php 和服务器都配置正确后,你要做的事情很少,看下面的例子:
<?php $host=”localhost”; $user=” ”; $pass=” ”; $link=mysql_connect($host,$user,$pass); ?>
mysql_connect 函数接受三个参数,第一个参数是主名。第二个参数是 mysql 数据库的用户名,最后一个参数是 mysql 数据库的密码。该函数返回资源标识符,这个标识符就代表当前 mysql 数据库的连接。这个资源标识符能在以后的 SQL 调用中,例如: mysql_query 和许多其他的函数。如果打印输出¥ link 变量,你会看到如下资源代码:
<?php $link=mysql_connect(“localhost”,”root”,” ”); print “Response:”.$link; ?>
上面的代码产生如下的响应:
Response : Response id #32
持久连接
标准的 mysql_connect 函数在脚本执行完后会自动的关闭连接。但有时候你可能想保持连接状态而不管脚本是否执行完毕。 mysql_pconnect 函数正式用来完成这个任务的。这个函数在脚本执行完后仍然保持连接。下面是建立持久连接的例子:
<?php $link = mysql_pconnect(“localhost”,”root”,” ”); print “Persistent Resource ID:” .$link; ?>
关闭连接
一个好的习惯是,在 SQL 执行完毕后移除连接释放资源和内存。调用 mysql_close() 函数就能关闭连接。手动关闭连接并不是必须的,因为当脚本执行完毕后会自动的关闭连接。看下面的例子:
<?php $link = mysql_connect(“localhost”,”root”,” “); print “Response: “ .$link; //关闭连接 mysql_close($link); ?>
mysql_close() 函数接受资源标识符作为参数,当你有多个连接时,这个参数是很有用的。这个参数不是必须的,默认情况会关闭最后一个连接。
注 : 由 mysql_pconnect ()函数创建的持久连接不能用 mysql_close() 函数关闭。
选择数据库
在建立完到 mysql 的链接后,你能选择一个数据库。只有在连接完成并已选择了数据库时,才能查询数据库。函数 mysql_select_db ()函数就是用来选择数据库以便查询的。当然你能用这个函数在数据库之间进行切换。
注:同一时间一个处于活跃状态的连接只能有一个被链接的数据库。
mysql_select_db 函数接收两个参数,第一个参数是数据库的名字,第二个参数(可选的)是连接的资源标识符。
下面是选择和连接数据库的例子:
<?php $link = mysql_connect(“localhost”,”root”,” “); mysql_select_db(“db_name”,$link); //关闭连接 mysql_close($link); ?>
mysql_query() 函数
这个函数用来执行 SQL 查询语句,这个函数会返回资源标识符。
第二章:使用数据
本章讨论的使用数据工作。在 as 中可以使用两种类型的数据:静态数据和动态数据。在大多数情况下,动态处理优于静态。因为动态数据常常包含数据库成分。
本章所讨论的是在 flash 和 php 中使用动态数据工作。本章我们先学习加载简单的文本文件,然后我们学习加载 XML 的相关知识,最后我们学习更为高级的加载方面的知识。
用 flash 加载数据
用 flash 加载数据是非常常见的。几乎在每个项目中,都会有一些动态的部分。使用动态数据的目的是尽可能的减少更新的数量。例如:如果你去看某个新闻站点,你将会发现大部分外部的内容都不会改变( logos ,菜单等),这对于 flash 应用程序也是一样的,你将会发现仅仅会有某些特定的部分正真的需要更新。本部分将会涉及加载从 xml 中加载数据,以及加载图像和声音等。
先让我们来看一个使用 flash 加载文本文件的例子:
var txtFile:String = “sample.txt”; var urlRequest:URLRequest = new URLRequest(txtFile); var loader:URLLoader=new URLLoader(); loader.addEventListener(Event.COMPLETE,loadHandler); loader.load(urlRequest); function loadHandler(e:Event):void { var loader:URLLoader = URLLoader(e.target); trace(“Loaded Data:”+loader.data); }
上面的例子加载一个命名为“ sample.txt ”的文本文件并将该文件的所有内容输出到输出面板。
理解用于加载数据的类
as 中有一系列的用于加载数据的内建类。下面分别讨论这些类:
URLRequest 类
(内容略,比较简单,在 flash 文档中看一下就 OK 了)
URLLoader 类
(内容略)
下面我们主要来看一个比较重点的例子(例子总是最能说明问题的):分配多个事件
假定你想处理 Loader 实例的 IOError 事件和 Complete 事件。你可能会输入每个事件处理程序,但是,当处理多个 Loader 实例时这样做是很繁琐的。一个比较简单的做法如下:
var txtFile:String = “sample.txt”; var urlRequest:URLRequest = new URLRequest(txtFile); var loader:URLLoader = new URLLoader(); assignHandlers(loader); loader.load(urlRequest); function assignHandlers(target:*):void { target[“addEventListener”](Event.COMPLETE,completeHandler); target[“addEventListener”](IOErrorEvent.IO_ERROR,ioErrorHandler); } function completeHandler(e:Event):void { …… } function ioErrorHandler (e:Event):void { …… }
用 flash 加载 xml
在开发的时候我们会经常的和数据打交道,一种比较完美的做法是返回 xml 结构的数据。 xml 是业界的标准,在你开始使用 xml 的时候你便会发现 xml 的优越性了。 xml 是基于标签来定义数据对象的。开发者可以自定义标签。下面看一个例子:
你可能像这样定义你的 xml 文件
<store> <item> <name>Book</name> <price>Learning</price> <inStock>yes</inStock> </item> <item> <name>Football</name> <price>4.99</price> <inStock>no</inStock> </item> <item> <name>Bike</name> <price>89.95</price> <inStock>no</inStock> </item> <item> <name>Basketball</name> <price>8.95</price> <inStock>yes</inStock> </item> </store>
你可能想加载上面的 xml 文件并显示其中的 items 。这是非常容易做到的。假设我们把上面的 xml 文件保存在 storeItems.xml 中。我们来看一下加载的代码:
var xmlFile:String = “storeItems.xml”; loadXML(); function loadXML():void { var urlRequest:URLRequest = new URLRequest(xmlFile); var urlLoader:URLLoader = new URLLoader(); urlLoader.addEventListener(Event,COMPLETE,xmlHandler); urlLoader.load(urlRequest); } function xmlHandler(e:Event):void { var urlLoader:URLLoader = URLLoader(e.target); var xml:XML = new XML(urlLoader.data); for each(var item in xml..item) { trace(item.name); trace(item.price); } }
在 php 中使用 xml
在本部分学习如何使用 php 加载和管理 xml 文件,在 php 中使用 xml 会开发更具动态的应用。
下面来看一下怎么用 php 加载 xml 文件:
<?php $xml = simplexml_load_file(‘sample.xml’); print $xml->sampleNode; ?>
接下来看一下发送 xml
从 php 发送 xml 到 flash 也是非常简单的,首先我们来动态建立 xml 文件:
<?php header(“content-type:text/xml”); $xmlData = “”; $xmlData .=”<store>\n”; $xmlData .= ”<item>\n”; $xmlData .=” <name>Book</name>\n”; $xmlData .=” <price>19.95</price>\n”; $xmlData .=” <inStock>yes</inStock>\n”; $xmlData .= “</item>\n”; $xmlData .= ”<item>\n”; $xmlData .=” <name>Book</name>\n”; $xmlData .=” <price>19.95</price>\n”; $xmlData .=” <inStock>yes</inStock>\n”; $xmlData .= “</item>\n”; $xmlData .= ”<item>\n”; $xmlData .=” <name>Bike</name>\n”; $xmlData .=” <price>19.95</price>\n”; $xmlData .=” <inStock>yes</inStock>\n”; $xmlData .= “</item>\n”; $xmlData .= ”<item>\n”; $xmlData .=” <name>Football</name>\n”; $xmlData .=” <price>19.95</price>\n”; $xmlData .=” <inStock>yes</inStock>\n”; $xmlData .= “</item>\n”; $xmlData .=”</store>\n”; print “response=” .=$xmlData; ?>
上面代码的最后一句有神奇的作用,它将 xml 数据输出到输出缓冲区并最终传到 flash 。
从数据库动态产生 xml
<?php header(“content-type:text/xml”); $quer = “SELECT * FROM store WHERE inStock=yes”; $link = mysql_connect(“localhost”,”user”,”pass”); $result = mysql_query($query.$link); $xmlData = “”; $xmlData .=”<store>\n”; while($row=mysql_fetch_array($result)) { $xmlData .=” <item>\n”; $xmlData .=” <name>” .$row[‘name’] .”</name>\n” $xmlData .=” <price>” .$row[‘price’] .”</price>\n” $xmlData .=” <inStock>” .$row[‘inStock’] .”</inStock>\n” $xmlData .=” </item>\n”; } $xmlData .=”</store>\n”; print “response=” .$xmlData; ?>
发表评论
-
iPhone、iPad 如何播放网页调用优酷视频?
2013-09-26 14:30 17735在线视频一般都是基 ... -
Scrolling Dynamically Loaded Text (as2)
2010-07-02 05:04 1960One quest ... -
交互动画按钮
2010-06-16 23:44 3723交互动画按钮 按钮元件是 Flash 的基本 ... -
引导路径动画 (2)
2010-06-16 23:41 18004.实例2——海底世界 ... -
引导路径动画 (1)
2010-06-16 23:31 3559引导路径动画(1) 在前面几节里,我们已经给大家介 ... -
动画基础
2010-06-16 23:22 1630动画的舞台结构及道具组合(1) 动画是一种动态 ... -
逐帧动画与夸张表情动画
2010-06-16 23:18 6478夸张表情动画的制作(1) (转之ET动画学堂) ... -
形状补间动画
2010-06-16 23:15 5479形状补间动画(1) ... -
逐帧动画与人运动动画制作
2010-06-16 23:11 5040人走路动画制作 ... -
动作补间动画
2010-06-16 23:07 4665动作补间动画(1) ... -
遮罩动画
2010-06-16 22:55 3574遮罩动画(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 1848Using the flash.display.Lo ... -
元件变色 change movieclip's color
2010-05-28 01:34 1904// 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 2401FLEX3中应用 CSS完全详解 ... -
flex 扇形菜单
2010-01-29 00:27 9224在继 auzn经典Flex教程–KingnareStyle ... -
flex 画线
2010-01-29 00:23 3538实例1: <?xml version=" ... -
Flex 中 12 个简单实用的小技巧
2010-01-26 06:32 16741. 复制内容到剪贴板 System.setCli ...
相关推荐
- **RSS阅读器**: 指导读者如何开发一个简单的RSS阅读器,利用PHP从RSS源中获取并显示最新消息。 - **广告跟踪系统**: 描述了一个广告点击跟踪系统的开发流程,包括如何记录点击次数以及统计分析等功能。 - **第三方...
在本入门教程中,我们将了解如何安装和使用AMFPHP以及创建简单的交互式Flash应用。 首先,你需要从AMFPHP官方网站下载适合的版本。教程中提到了1.9BETA2,但你可以根据当前最新的版本进行下载。下载完成后,将解压...
然后,通过JavaScript或服务器端语言(如PHP、ASP.NET、Python等)与SWF文件进行交互,传递数据和配置参数,生成所需的图表。 1. **数据传递**:Open Flash Chart通过JSON格式来传递数据。你可以创建一个JSON对象,...
通过这个PHP聊天室程序,初学者不仅可以掌握PHP基础,还能了解到前端技术与后端交互的工作原理,以及如何构建一个简单的实时通信应用。实践中遇到的问题和解决过程将加深对这些知识点的理解,为后续更复杂的Web开发...
总的来说,这款"Flash生成统计图插件"凭借其对JSON的支持、丰富的图形类型、简便的设置和AJAX功能,为开发者提供了一种高效、灵活的工具来创建交互式数据图表,无论是在Web应用还是桌面应用中都能发挥出色的效果。...
**Ajax(Asynchronous JavaScript and XML)简单入门讲解** Ajax 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。这种技术的运用极大地提升了用户体验,因为它允许网页在后台与服务器进行数据交换...
**Ajax(Asynchronous JavaScript and XML)简单入门讲解** Ajax 是一种在无需刷新整个网页的情况下,能够更新部分网页的技术。它的核心在于JavaScript,通过创建XMLHttpRequest对象来与服务器进行异步数据交换,...
PHP/SWF Charts - PHP/SWF 是一个简单支持web图表的强大工具,你能使用 PHP 来收集数据,并发送给flash,支持很多图表类型: Line, Column, Stacked column, Floating column, 3D column, Stacked 3D column, ...
PHP/SWF Charts - PHP/SWF 是一个简单支持web图表的强大工具,你能使用 PHP 来收集数据,并发送给flash,支持很多图表类型: Line, Column, Stacked column, Floating column, 3D column, Stacked 3D column, ...
@media screen and (max-width: 600px) { #main { width: 100%; } } ``` #### 6. **表单处理** - **HTML表单**: 使用`<form>`标签创建表单,`<input>`标签定义输入字段,如文本框、提交按钮等。 - **验证**...
AMFPHP 是一种轻量级的、开源...通过使用 AMFPHP,你可以利用 PHP 的强大功能处理后端逻辑,同时享受到 Flash 提供的交互性和图形展示。这种技术在开发需要实时数据交换的游戏、动态图表或者复杂的用户界面时特别有用。
Ajax(Asynchronous JavaScript and XML)实现了浏览器与服务器之间的异步通信,使得用户在等待文件上传的同时仍可操作页面其他部分。Flex结合Ajax,通过Flash Player插件与后台服务器进行通信,实现无刷上传并实时...
18.JPowered:JPowered是一个PHP制图脚本,提供一个便捷简单的方法,内嵌动态生成的图形和图表进入PHP应用程序和HTML网页。 19.JSCharts:JSCharts是一个JavaScript库,用于创建交互的图表和数据分析解决方案。 ...
Ajax(Asynchronous JavaScript and XML)技术允许在不刷新整个页面的情况下与服务器进行数据交换,从而实现了页面的异步更新。在多图片上传场景中,Ajax可以实现图片逐个上传,同时更新页面上的预览图,保持用户...
- **Flash Remoting**:允许使用Flash与服务器端进行数据交互的技术。 #### 三、客户端-服务器通信模型 **1. 概述** - 在传统的Web应用程序中,客户端向服务器发送请求后,服务器处理请求并返回新的HTML页面,这...
Flex是Adobe推出的基于Flash Player的客户端框架,用于构建交互性强、视觉效果丰富的Web应用,而Ajax(Asynchronous JavaScript and XML)则是一种在不刷新整个页面的情况下更新部分网页的技术,提高了用户体验。...
7. **拖拽释放API(Drag and Drop API)**:使得在网页上实现拖放操作变得简单,增加了交互性。 在基于HTML5的网页设计与实现过程中,设计师需要考虑以下步骤: 1. **效果图设计**:根据具体需求分析网页布局,...
这款工具的特点在于其无需Flash支持,而是利用 SAJAX (Simple Asynchronous JavaScript and XML) 技术以及 CSS,为用户提供了一个既美观又交互性强的界面。 首先,让我们深入了解 ffGallery 的核心特点: 1. **无...
Ajax (Asynchronous JavaScript and XML) 技术允许页面异步刷新,不干扰用户与页面其他部分的交互。在文件上传场景中,可以使用Ajax结合JavaScript库(如jQuery)来发送请求,监控上传进度,并在上传完成后通过回调...
3. **Eloquent ORM**:Laravel内置了强大的ORM,它提供了一种简单的方式来与数据库交互,通过"模型"来代表数据库表,简化了SQL查询。 4. **视图**:视图负责展示数据,可以使用Blade模板引擎,它是一种轻量级的模板...