Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

vinialbino

Load de vários sons

Recommended Posts

Bom dia,sou novo no fórum e gostaria da ajuda de alguém se possível.

Estou fazendo um jogo,e tenho de carregar os sons de uma pasta externa,no caso não posso deixar os sons no swf,e estou tentando fazer uma rotina,que dê load em todos os sons de uma vez só,tentei trabalhar com arrays listando os sons,porém me surgiu uma dúvida,eu devo criar um objeto "public var som:Sound = new Sound();" para cada som que eu for usar?

Não teria um jeito mais fácil de eu criar vários objetos sem ter de ficar declarando um por um?

Desdê já agradeço a ajuda.

Abs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use um arquivo externo em XML.

 

O trecho do código abaixo foi usado para criar um player mp3, talvez possa lhe dar uma idéia. Não inseri o action para os botões play, pause, etc.

Os créditos são para o site www.FlashEssential.com (onde você encontra o arquivo na íntegra)

 

var getMusic:URLRequest;

var music:Sound = new Sound();

var soundChannel:SoundChannel;

var currentSound:Sound = music;

var pos:Number;

var currentIndex:Number = 0;

var songPlaying:Boolean = false;

var xml:XML;

var songlist:XMLList;

 

 

 

/*--------Simple preloader----------------------------------------*/

 

 

function loadProgress(event:ProgressEvent):void {

var percentLoaded:Number = event.bytesLoaded/event.bytesTotal;

percentLoaded = Math.round(percentLoaded * 100);

if(percentLoaded > 20){

trace("loading");

} else{

}

}

 

function completeHandler(event):void {

trace("DONE");

}

 

 

/*-------------------Load in Our XML ------------------------*/

/*----------------------------------------------------------*/

var loader:URLLoader = new URLLoader(); //create a new URLLoader Object

loader.addEventListener(Event.COMPLETE, whenLoaded); //add an event listener to that object

loader.load(new URLRequest("songs.xml")); //Requests our xml file that contains our song data

 

function whenLoaded(e:Event):void //WhenLoaded function(see line 50) runs when line 50 is complete

{

xml = new XML(e.target.data);

songlist = xml.song; //accesses our song tag in our xml file

getMusic = new URLRequest(songlist[0].url);//get music from songlist

music.load(getMusic);//load music

soundChannel = music.play();//plays the music

songTXT.text = songlist[0].title; //gets song name from xml

//artistTXT.text = songlist[0].artist; //gets artist name

//albumTXT.text = songlist[0].album; //gets album name

 

soundChannel.addEventListener(Event.SOUND_COMPLETE, nextSong);//runs the next song function when a song completes

}

 

 

Um trecho do XML:

 

<?xml version="1.0" encoding="ISO-8859-1"?>

<ipod>

 

<song>

<url>songs/musica1.mp3</url>

</song>

 

<song>

<url>songs/musica2.mp3</url>

</song>

</ipod>

 

 

Apenas um detalhe, o player abre executando a musica1, as demais vem automaticamente em sequência.

Para o que deseja será necessário alguma adaptação, no momento, além do meu conhecimento para lhe auxiliar.

Espero que ao menos possa lhe dar uma luz.

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.