下面方法没试过,有待验证。。。
一般情况下,我们接受FLEX数据一点都不难,可以由FLEX应用向PHP{或者其他任何脚本}发送一个请求,可以以各种不同的方式 {AMFPHP,WebService,其他},这种方法的好处是使用方便,自由,缺点是,必须要从swf发送请求才可以实现,对于我们需要直接从URL 上获取数据,并反馈在FLASH里面的话,就有些力不从心了。
现在给出另一种方法:http://….example.swf?username=xxx
当URL是这种形式的时候,我们希望直接在FLASH上做出反应,而不希望通过其他脚本来中转。
这是,用mx.core.Application类的parameters属性可以获取GET的数据。
给个例子
- <? xml version =” 1 . 0 ″ encoding =” utf-8 ″ ?>
- < mx:Application xmlns:mx =” http: // www . adobe . com / 2006 / mxml ” layout =” absolute ” creationComplete =” init ();” >
- < mx:Script >
- <![CDATA[
- private function init():void
- {
- trace(this.parameters.username);
- }
- ]]>
- </ mx:Script >
- </ mx:Application >
但是很多时候,我们并不希望仅仅展示一个flash给用户,在绝大多数时候,我们都需要由另一个脚本来掌控全局。
对于URL是http://….example.php?username=xxx
这样的情况下,PHP对此无能为力,相信JAVA或者C#也是一样。但是不要忘了JS,这时,我们可以在js里面写一个函数
function getUrl(){return window.location.url;}
在FLEX中这样获取
- <? xml version =” 1 . 0 ″ encoding =” utf-8 ″ ?>
- < mx:Application xmlns:mx =” http: // www . adobe . com / 2006 / mxml ” layout =” absolute ” creationComplete =” init ();” >
- < mx:Script >
- <![CDATA[
- private function init():void
- {
- var url:String=ExternalInterface.call("getUrl");
- trace(url);
- }
- ]]>
- </ mx:Script >
- </ mx:Application >