Daisy Monte 0 Denunciar post Postado Setembro 22, 2011 Olá galera, Sou nova em as3 e estou batendo a cabeça com algo que acredito ser simples =/ Basicamente o que eu preciso fazer é instanciar vários sons: var sound:Sound; sound = new snd_ball_1(); sound = new snd_ball_2(); sound = new snd_ball_3(); . = . . = . . = . sound = new snd_ball_93(); o problema é e que eu tenho 93 sons e gostaria de fazer isso dinâmicamente... A idéia seria mais ou menos essa: var qt_balls:int = 93; var vet_sounds:Array = new Array(); var sound_name:String = 'snd_ball_'; var meu_som:String = ''; var sound:Sound; for(var x:int= 0; x< qt_balls;x++){ meu_som = sound_name +(x+1).toString(); sound = new meu_som; vet_sounds[x] = sound; } Eu sei que 'sound' só aceitará objetos do tipo Sound e que no exemplo to enviando uma String Mas é que eu realmente não sei como fazer isso...hehehe Já procurei e tentei várias soluções, mas agora já não faço mais idéia do que tentar... =S Se alguém puder me dar alguma ajuda, agradeço Compartilhar este post Link para o post Compartilhar em outros sites
SmileStnt 0 Denunciar post Postado Setembro 23, 2011 Daisy tente fazer a play list por xml código para ler o arquivo xml no AS3 mp3_player.carrega_xml("lista_de_musica.xml"); crie 1 arquivo no bloco de notas e salve como lista_de_musica.xml <?xml version="1.0" encoding="UTF-8"?><musicas> <musica> <faixa>Nome Da Musica 1</faixa> <artista>Artist Um</artista> <url>pastademusica/nomedamusica.mp3</url> </musica> <musica> <faixa>Nome Da Musica 2</faixa> <artista>Artist Dois</artista> <url>pastademusica/nomedamusica2.mp3</url> </musica> </musicas> cada musica que quiser adicionar deve estar em "pastademusica/..." e basta adicionar os campos que desejar este é apenas exemplo de 2 musicas para inserir 999 musicas repita: <musica> <faixa>Nome Da Musica 1</faixa> <artista>Artist Um</artista> <url>pastademusica/nomedamusica.mp3</url> </musica> 999 vezes entendeu? Eu coloquei as strings "faixa",artista,url mas você pode alterar ao seu gosto é só um exemplo mesmo =_) Compartilhar este post Link para o post Compartilhar em outros sites
Daisy Monte 0 Denunciar post Postado Outubro 5, 2011 Oláá! Então, eu até tentei fazer desta forma, mas aí eu ia cair na mesma sina, de digitar o nome de cada música de cada vez, em vez de fazer isso dinamicamente. A única diferença é que eu ia carregar um xml, em vez de um objeto... Felizmente, eu consegui encontrar uma outra maneira de fazer... O pior é que quando a gente encontra, o negócio fica tão óbvio que da até raiva hehehe De qualquer maneira, muito obrigada! Eu realmente já estava arrancando os cabelos em busca de uma solução, me recusava a escrever o negócio 90 vezes... rsrs Vou postar aqui pra quem tiver interesse: package { import flash.media.Sound; import flash.media.SoundChannel; [sWF(width=1024, height=768 , BackgroundColor = '0x000000',frameRate='24')] public class TestSound { private var vet_ball_sounds:Array = new Array(); private var canal: SoundChannel = new SoundChannel(); private var sound:Sound = new Sound(); public function TestSound() // Constructor - Entry point { var qt_balls:int = 90; //Sons do jogo for(var x:int = 0; x< qt_balls;x++){ sound = new Sound(new URLRequest("sound/"+(x+1).toString()+ ".mp3")); vet_ball_sounds.push(sound); } } private function sound_ball_play(ball:int):void{ canal = vet_ball_sounds[ball].play(0,1); } } } Compartilhar este post Link para o post Compartilhar em outros sites
brunobispo 20 Denunciar post Postado Outubro 6, 2011 Que bom que conseguiu. Só para nível de informação, para obter uma classe só com o seu nome, você precisa usar a função getDefinitionByName(). Veja um exemplo: var classReference:Class = getDefinitionByName("flash.display.Sprite") as Class; var instance:Object = new classReference(); Compartilhar este post Link para o post Compartilhar em outros sites