2009-08-12 5 views

Répondre

5

Je suppose que le client ne veut pas avoir à lister manuellement les fichiers mp3 dans un fichier XML, mais de toute façon, une liste des fichiers doit être exposée au composant flash pour qu'il puisse tire les fichiers. Une façon de faire ceci serait un script côté serveur qui liste les fichiers pour ce répertoire donné et renvoie cette liste dans un format XML (entièrement automatisé, pas de création de fichier XML manuelle). L'écriture d'un tel script côté serveur devrait être assez simple (en utilisant PHP, par exemple).

processus:

  1. Fetch une liste de fichiers à l'aide d'une requête HTTP du client vers le script côté serveur.
  2. Traitez la liste des fichiers et faites ce que vous voulez faire avec.
+2

Pourrait être agréable si les gens ont laissé un commentaire en votant une réponse. –

1

est-ce qu'on parle de fichiers locaux ou de fichiers de serveur? AIR ou SWF? Si vous utilisez AIR, vous pouvez le faire avec des fichiers locaux, en utilisant l'objet File.

En utilisant le contenu swf sur le serveur, vous pouvez le faire avec un script php (ou un autre langage) qui peut saisir les noms de tous les fichiers. En php, jetez un oeil à la méthode readdir.

Malheureusement, il n'y a pas de méthode native dans ActionScript en dehors d'AIR.

Espérons que cela aide.

Tyler.

0

Vous pouvez utiliser un fichier texte au lieu d'un fichier XML.

Compte tenu d'un fichier texte:

assets/song1.mp3 
assets/song2.mp3 
assets/song3.mp3 
assets/somg4.mp3 

Ce code va charger le fichier texte et diviser chaque nom de la chanson dans les éléments d'un tableau:

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

} 

Une autre idée est d'utiliser une dénomination commune schéma (par exemple song1, song2, song3, etc) et de savoir combien de chansons que vous avez dans le code. De cette façon, vous pouvez écrire une boucle simple (de 1 au nombre de chansons) et les charger de cette façon.

Questions connexes