Flash 在AS3中不使用XML就可以从文件夹加载所有文件吗?
客户机希望能够将mp3文件放入文件夹,并让flash对象加载该文件夹中的所有mp3文件,而不希望处理XML。这可能吗?我知道我可以很容易地用XML文件来实现这一点,但我不确定没有XML文件怎么做。我假设客户端不想手动在XML文件中列出mp3文件,但无论如何,必须向flash组件公开一个文件列表,以便能够提取文件 一种方法是使用服务器端脚本,列出给定目录的文件,并以某种XML格式返回该列表(完全自动,无需手动创建XML文件)。编写这样的服务器端脚本应该相当简单(例如,使用PHP) 过程:Flash 在AS3中不使用XML就可以从文件夹加载所有文件吗?,flash,actionscript-3,Flash,Actionscript 3,客户机希望能够将mp3文件放入文件夹,并让flash对象加载该文件夹中的所有mp3文件,而不希望处理XML。这可能吗?我知道我可以很容易地用XML文件来实现这一点,但我不确定没有XML文件怎么做。我假设客户端不想手动在XML文件中列出mp3文件,但无论如何,必须向flash组件公开一个文件列表,以便能够提取文件 一种方法是使用服务器端脚本,列出给定目录的文件,并以某种XML格式返回该列表(完全自动,无需手动创建XML文件)。编写这样的服务器端脚本应该相当简单(例如,使用PHP) 过程: 使用从客
我们谈论的是本地文件还是服务器文件?航空还是SWF?如果使用AIR,则可以使用文件对象对本地文件执行此操作 使用服务器上的swf内容,您可以使用php(或其他语言)脚本来实现这一点,该脚本可以获取所有文件的名称。在php中,看看readdir方法 不幸的是,在AIR之外的ActionScript中没有本机方法 希望有帮助
泰勒。您可以使用文本文件而不是XML文件 给定一个文本文件:
assets/song1.mp3
assets/song2.mp3
assets/song3.mp3
assets/somg4.mp3
此代码将加载文本文件,并将每个歌曲名称拆分为数组元素:
package
{
import flash.display.Sprite;
import flash.events.Event;
import flash.net.URLLoader;
import flash.net.URLRequest;
public class LoadFileTest extends Sprite
{
public static const FILE_LIST_PATH:String = "mp3List.txt";
public function LoadFileTest()
{
var urlRequest:URLRequest = new URLRequest(FILE_LIST_PATH);
var urlLoader:URLLoader = new URLLoader();
urlLoader.addEventListener(Event.COMPLETE, processTextFile);
urlLoader.load(urlRequest);
}
public function processTextFile(event:Event):void
{
var loader:URLLoader = URLLoader(event.target);
var textFile:String = loader.data;
var mp3UrlList:Array = textFile.split("\n");
trace(lines);
}
}
}
另一个想法是使用通用命名方案(例如,song1、song2、song3等),并知道代码中有多少首歌曲。这样,你就可以编写一个简单的循环(从1到歌曲数量),并以这种方式加载它们。如果人们在投票否决答案时留下一些评论,那就太好了。