AS3 не работает мой скрипт PHP - PullRequest
0 голосов
/ 10 августа 2010

Итак, я пишу эту программу сценария действия, которая будет вызывать 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

, и это файлы внутри папки thumbs.Теперь я хочу вызвать это в моем ActionScript и иметь возможность получить тот же вывод в моем скрипте действия.

Это мой файл скрипта действия:

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);
        }
    }
}

Я запустил это и получилthis

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 для отображения во флэш-памяти.

Ответы [ 3 ]

0 голосов
/ 11 августа 2010

взгляните на этот класс: http://www.as3blog.org/?p=18

0 голосов
/ 12 августа 2012

Попробуйте с:

urlLoader.dataFormat = URLLoaderDataFormat.BINARY;
0 голосов
/ 10 августа 2010

Попробуйте что-то подобное и измените в соответствии со своими потребностями:

<?
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 символ "/" или "\".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...