代理脚本在Flash - 加载外部数据
关于互联网的最伟大的事情之一是提供免费的信息和内容的财富。他们是成千上万的网站,让你使用他们的网站和数据库的内容 - 它显示在你的。这方面的例子是股票行情,天气数据,新闻,搜索引擎结果,拍卖清单,等等 - 和这样的例子不胜枚举。另一个重要方面的互联网应用服务供应商,这些服务的一些例子可能包括CRM的客户关系管理,信息共享,销售跟踪,电子商务,人力资源的,桌面应用程序,等等 - 的名单再次去上和上。
什么所有这些有什么共同之处?- 所有这些数据,所有这些服务都不能直接访问您的Flash动画制作影片。如果你想包括不断变化的,从NOAA最新的天气报告 - 来自雅虎财经 - 股票行情新闻联播此外 - 或发送一个新的领先的CRM服务 - 或发送付款信息Authorize.net处理 - 发送和检索您的服务器不位于从数据库中的数据。嗯,这本教程进入一个方法,可以让你做所有这一切都在闪光 - 用户永远不会离开你的网站!
推荐阅读:“出于安全考虑,不允许在Web浏览器中的Flash电影播放数据访问外部网络域的SWF起源所在。”- http://www.macromedia.com/support/flash/ts/documents/loadvars_security.htm
Macromedia公司提出了两个解决方案或变通此安全功能,第一个是代理脚本的第二个涉及DNS别名。这篇文章/教程将以上两个例子的代理脚本,它可以用来创建一个更加多样化和不断变化的Flash影片/经验。我也把一个搜索引擎的一个例子,这是所有关于一个可视化的例子。根据雅虎的搜索引擎,但发送和显示在Flash中(包括在下载中)的搜索查询的结果 - 例如搜索引擎的访问的工作版本/ - http://www.flash-db .COM /搜索/。这仅仅是一个许多有用的应用程序的这篇文章。他们也与而且消息在www.flash-db.com/News/的使用这种方法的一个例子。
本教程并不适合每一个人,它不会是每个人都可以使用。 1)由于需要一个服务器端脚本,该脚本必须在服务器上运行。 2)有些服务器不允许向外的连接,如果你的服务器有此限制,那么它不会有可能要运行此脚本。(一些免费的和非常大的便宜的商业托管公司都会有这样的限制,由于他们的防火墙设置)。 3)这些脚本不需要使用独立的Flash演示程序(exe) - 这是只需要在浏览器中嵌入的SWF文件在互联网上。
概观
首先,它是必要的,定义两种类型,我们将要访问的数据/内容。 1)静态 - 这涉及网页是不会改变的,并非根据传递给他们的信息(查询条件)。这方面的例子是文本文件,HTML页面,XML内容 - 驻留在一台服务器/域以外的自己。 2)动态 - 这涉及网页,数据库和其他脚本或执行查询的基础上的信息发送给他们。
静态:加载来自其他服务器的静态内容/数据加载动态的内容。这是因为你没有建立一个请求方法,如“GET”或“POST”。这仅仅是读取或抓取静态内容在网络上的其他地方,并把它回到您的Flash影片。一个例子。如果你想给你的图片,SWF,MP3,电影等,用这种方法也可以返回 - ,虽然以来的loadMovie没有这个限制,他们将在这个过程中,这些类型的文件是没有意义的。
动态:动态内容/数据需要发送“GET”或“POST”的请求。然后,根据你发送的数据的页面 - 它的反应,并请求数据的基础上产生的结果。这是一个很好的例子发送一个搜索引擎的搜索字词。如果你想搜索谷歌的“闪光”,你就必须告诉搜索“闪光”。另一个例子是,如果你想添加一个销售线索跟踪此信息对您的服务。或者,如果你想发送信用卡信息,信用卡交易的处理器。或者,也许将信息添加到不同的服务器上的数据库。基本上任何时间,你必须将信息发送到获取信息的回报。
绑在一起:数据的基本流程:从Flash - >“脚本 - > - >返回到外部数据源的脚本 - >返回到Flash。所有这一切,最困难的部分(因为大多数数据不会返回到很好的格式化XML)的解析和格式化的数据从外部数据源返回的格式Flash可以很容易地显示。易返回工作,并与包括CSV(逗号分隔值),TSV(制表符分隔的值) - 当然XML(这并不需要任何分析,因为Flash已经可以读取XML)格式。很多时候,你必须与复杂的HTML的东西回来,这是最难的格式化和分析在Flash中使用。这一切的背后,这是真正的艺术。
思考:Macromedia公司新增的安全限制(无法访问外部数据),因为Flash可以循环并没有用户需要采取行动来发送一个请求通过“GET”或“POST”。所以一开始,你可能会认为“大交易” - 但如果你进一步牢记过去的DOS(拒绝服务)攻击,你会看到的Macromedia加入此安全功能是正确的,这样做有充分的理由。如果有人把很简单的Flash电影的免费Web服务器发送的请求数/千/百万人的数据库或网站的每第二百/千。这可能会成为一个问题,降低性能(或崩溃)的网站,是有针对性的。(这最后一段只是一个想法 - 可能会或可能不会是合理的)。
第一部分:静态请求
包括一个文本文件,HTML文件,XML文件等,从不同的服务器/域 - 只需要一个简单的脚本。在Flash影片,你有这样的事情:
使用loadVariablesNum(的“GetFile.php”,0);
您也将有一个动态文本框,命名为“结果”。后调用脚本的文本区域中填入您的请求的URL的信息。下面的脚本:
打开($ URL,“R”);
3)$结果=弗里德(800000);
4)FCLOSE(FP);
5)打印“结果= $结果”;
?>
这是什么作用:
线路1:首先我们指定的URL打开。
2号线:我们打开一个文件指针(FP)和指定的URL。
3号线:在这个URL中包含的数据读取,并给它一个变量名$结果。在这种情况下,他们是有限制的800000(这是足够大,几乎所有的东西)。
线路4:关闭文件指针。
5号线:打印结果的页面。 “变量=值”的格式是必要的,这样闪光灯可以读取数据。在这一点上的数据发送回Flash - 将出现在文本区域中名为“结果”。
您可以使用一个XML文件,使用XMLSocket对象的方法和XML对象的send和sendAndLoad - 这个概念是相同的 - 同样的方法,虽然Flash调用的文件的格式和方法会有所不同。
有这方面的工作与XML - 我会建议找过了他们的许多XML教程,并结合这些教程在本教程中所包含的想法。在这种方式加载的XML内容从外部服务器/域是可能的 - 相对容易。
该URL可以是任何类型的文件,包括。的HTML,的。csv,。txt文件,TSV,RSS,WDDX,等你可以同时加载的MP3,图像,其他swf文件,电影,等从其他服务器,上面的脚本(与MX) - 然而你会使用loadMovie而不是loadVariables,并,因为使用loadMovie没有相同的限制使用loadVariables - 就没有必要使用脚本。
(责任编辑:卓想动画http://www.zxgzs.com)