Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flash 在AS3中不使用XML就可以从文件夹加载所有文件吗?_Flash_Actionscript 3 - Fatal编程技术网

Flash 在AS3中不使用XML就可以从文件夹加载所有文件吗?

Flash 在AS3中不使用XML就可以从文件夹加载所有文件吗?,flash,actionscript-3,Flash,Actionscript 3,客户机希望能够将mp3文件放入文件夹,并让flash对象加载该文件夹中的所有mp3文件,而不希望处理XML。这可能吗?我知道我可以很容易地用XML文件来实现这一点,但我不确定没有XML文件怎么做。我假设客户端不想手动在XML文件中列出mp3文件,但无论如何,必须向flash组件公开一个文件列表,以便能够提取文件 一种方法是使用服务器端脚本,列出给定目录的文件,并以某种XML格式返回该列表(完全自动,无需手动创建XML文件)。编写这样的服务器端脚本应该相当简单(例如,使用PHP) 过程: 使用从客

客户机希望能够将mp3文件放入文件夹,并让flash对象加载该文件夹中的所有mp3文件,而不希望处理XML。这可能吗?我知道我可以很容易地用XML文件来实现这一点,但我不确定没有XML文件怎么做。

我假设客户端不想手动在XML文件中列出mp3文件,但无论如何,必须向flash组件公开一个文件列表,以便能够提取文件

一种方法是使用服务器端脚本,列出给定目录的文件,并以某种XML格式返回该列表(完全自动,无需手动创建XML文件)。编写这样的服务器端脚本应该相当简单(例如,使用PHP)

过程:

  • 使用从客户端到服务器端脚本的HTTP请求获取文件列表
  • 处理文件列表并执行您打算对其执行的任何操作

  • 我们谈论的是本地文件还是服务器文件?航空还是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到歌曲数量),并以这种方式加载它们。

    如果人们在投票否决答案时留下一些评论,那就太好了。