2010-08-10 149 views
0

所以我寫這個動作腳本程序,將調用一個PHP文件,它將返回文件夾內的文件名。AS3沒有運行我的PHP腳本

我的PHP文件看起來像這樣

<?php 
    $dirname = "thumbs"; 
    $ret =array(); 
    if($dir = opendir($dirname)){ 
     $i=0; 
     while($file = readdir($dir)){ 
      if($file != '.' && $file != '..'){ 
       $ret["file" . $i] = $file; 
       $i++; 
      } 

     } 
     $returnString = http_build_query($ret); 
     echo $returnString; 
    } 

?> 

,如果我只是運行這個本身我會得到

file0=back-matter.pdf&file1=ch1.pdf&file2=ch2.pdf&file3=ch3.pdf&file4=ch4.pdf&file5=ch5.pdf&file6=ch6.pdf&file7=ch7.pdf&file8=ch8.pdf&file9=ch9.pdf&file10=front-matter.pdf 

和那些文件夾中的拇指裏面的文件。現在我想在我的動作腳本中調用它,並能夠在我的動作腳本中獲得相同的輸出。

這是我的動作腳本文件:

package 
{ 
    import flash.display.MovieClip; 
    import flash.display.Loader; 
    import flash.net.URLRequest; 
    import flash.net.URLLoader; 
    import flash.net.URLVariables; 
    import flash.net.URLRequestMethod; 
    import flash.net.URLLoaderDataFormat; 
    import flash.events.Event; 

    public class Main extends MovieClip 
    { 
     public var thumbFolder:String = "thumbs"; 
     public var markerFolder:String = "marker"; 
     public var folderGetterPHP:String = "getter.php"; 

     public function Main() 
     { 
      var urlRequest:URLRequest = new URLRequest(folderGetterPHP); 
      var urlLoader:URLLoader = new URLLoader(); 

      urlRequest.method = URLRequestMethod.GET; 
      urlLoader.dataFormat = URLLoaderDataFormat.VARIABLES; 
      urlLoader.addEventListener(Event.COMPLETE, completeHandler); 
      urlLoader.load(urlRequest); 
     } 

     public function completeHandler(evt:Event):void 
     { 
      trace(evt.target.data); 
     } 
    } 
} 

我跑了,我得到這個

Error: Error #2101: The String passed to URLVariables.decode() must be a URL-encoded query string containing name/value pairs. 
    at Error$/throwError() 
    at flash.net::URLVariables/decode() 
    at flash.net::URLVariables() 
    at flash.net::URLLoader/onComplete() 

我也試着設置

urlLoader.dataFormat = URLLoaderDataFormat.TEXT; 

,但我只拿到了我的PHP源代碼顯示爲輸出。有人可以向我解釋如何讓我的php的輸出顯示在閃存中。

回答

0

嘗試這樣的事情,並進行修改以滿足您的需求:

<? 
function FindmyDir($php_self){ 
$file = explode("/", $php_self); 
for($i = 0; $i < (count($file) - 1); ++$i) { 
$filename2 .= $file[$i].'/'; 
} 
return $filename2; 
} 
echo FindmyDir($_SERVER['PHP_SELF']); 
?> 

您還必須strreplace的「/」字符或「\」。

0

嘗試用:

urlLoader.dataFormat = URLLoaderDataFormat.BINARY; 
+0

當提供解決問題的代碼,最好是也給至少它是如何工作這麼一個簡短的說明人們閱讀並不需要從心理上逐行解析它來理解差異。 – Fluffeh 2012-09-27 11:28:41