2009-08-12 4 views
2

クライアントは、mp3ファイルをフォルダに入れて、そのフォルダからすべてのmp3ファイルをロードするフラッシュオブジェクトを持ち、XMLを処理したくないと思っています。これは可能ですか?私はXMLファイルでこれを簡単に行うことができることは知っていますが、私はXMLファイルなしでこれを行う方法がわかりません。AS3でXMLを使わずにフォルダからすべてのファイルを読み込むことはできますか?

答えて

5

私は、クライアントが手動でXMLファイルにmp3ファイルをリストアップする必要はないと考えていますが、どちらの方法でも、ファイルのリストをフラッシュコンポーネントに公開する必要がありますファイルをプルします。

これを行う1つの方法は、指定されたディレクトリのファイルをリストし、このリストをXML形式(完全に自動化されたXMLファイルの手動作成なし)で返すサーバーサイドスクリプトです。このようなサーバーサイドスクリプトを書くことは、かなり単純でなければなりません(例えば、PHPを使用して)。

プロセス:

  1. は、サーバーサイドスクリプトへのクライアントからのHTTPリクエストを使用してファイルのリストを取得します。
  2. ファイルのリストを処理し、それらのファイルを使って何をしようとしています。
+2

答えを投票するときにコメントが残っていれば、いいかもしれません。 –

1

私たちはローカルファイルまたはサーバーファイルについて話していますか? AIRまたはSWF? AIRを使用している場合は、ファイルオブジェクトを使用して、ローカルファイルでこれを行うことができます。

サーバ上でswfコンテンツを操作すると、すべてのファイルの名前を取得できるPHP(または他の言語)スクリプトでこれを行うことができます。 PHPでは、readdirメソッドを見てください。

残念ながら、AIR以外のActionScriptにはネイティブメソッドがありません。

希望に役立ちます。

タイラー。

0

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

} 

もう一つのアイデアは、共通の命名を使用することですテキストファイルを考えると

スキーム(例えば、曲1、曲2、曲3、など)を知っていて、曲にいくつの曲があるかを知ることができます。そうすれば、簡単なループ(1から数えて)を作成し、そのようにロードすることができます。

関連する問題