2016-06-24 92 views
1

我只是在Flash CS6中试用PHP和AS3。我想要将几个字符串从PHP传递到Actionscript3并将它们存储在一个数组中。这可能吗?将字符串从PHP传递到Flash

目前我正在这样做。我的PHP代码是

<?php 
    echo "one,two,three,four"; 
?> 

和AS3代码:

var myRequest:URLRequest = new URLRequest("please7.php"); 
var myLoader:URLLoader = new URLLoader();   
myLoader.load(myRequest); 
myLoader.dataFormat = URLLoaderDataFormat.TEXT; 
myLoader.addEventListener(Event.COMPLETE, onLoaded); 

function onLoaded(event:Event):void { 
    var variables:String = event.target.data; 
    trace(variables); 
    var arr1:Array = new Array(); 
    arr1 = variables.split(","); 
    trace(arr1); 
    } 

这给了我这样的输出:

<?php 
    echo "one,two,three,four"; 
?> 

如果我使用myLoader.dataFormat = URLLoaderDataFormat.VARIABLES;代替myLoader.dataFormat = URLLoaderDataFormat.TEXT; ..I'm得到这个错误

Error: Error #2101: The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs.

我想输出是一个简单的[一二三四]

我在做什么错了?

+0

是您的PHP文件实际上是一个服务器上? (应该是Web服务器甚至某些本地主机服务器地址)。在那之前它只是一个文本文件,并不会“回应”任何东西。您只需读取PHP中的文字(文本),而不是请求有效的服务器结果。 –

回答

0

你可以不喜欢以下,这将作为查询字符串传递

在PHP

<?php 
echo 'q=' . htmlentities($your_data); 
?> 

在AS3

var urlLoader:URLurlLoader = new URLurlLoader(); 
urlLoader.dataFormat = URLurlLoaderDataFormat.VARIABLES; 
urlLoader.addEventListener(Event.COMPLETE, onComplete); 
urlLoader.load(new URLRequest("somefile.php")); 

function onComplete (event:Event):void { 
    trace (urlLoader.data.q.toString()); 
} 
+0

你能解释一下这是什么意思? <?php ** echo'q ='+ htmlentities($ your_data); ** ?> –

+0

它将用作键/值项,其中htmlEntities会将特殊字符编码为像HTML一样的实体,例如'& '&s;' –

+0

谢谢你的帮助:) –