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