2016-06-24 125 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

謝謝你的幫助:) –