AS3没有运行我的PHP脚本

时间:2010-08-10 18:48:54

标签: php flash actionscript-3

所以我正在编写这个动作脚本程序,该程序将调用一个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

这些是thumb文件夹中的文件。现在我想在我的动作脚本中调用它,并且能够在我的动作脚本中获得相同的输出。

这是我的动作脚本文件:

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的输出显示在flash中。

3 个答案:

答案 0 :(得分: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 “/”字符或“\”。

答案 1 :(得分:0)

看看这个课程: http://www.as3blog.org/?p=18

答案 2 :(得分:0)

尝试:

urlLoader.dataFormat = URLLoaderDataFormat.BINARY;