Pergunta

Eu tenho um projeto com um monte de sons externos a um SWF. Eu quero jogar, mas a qualquer momento eu tentar carregar uma nova URL para o objeto de som falhar com qualquer um,

Erro # 2068: Invalid Som

ou levanta uma ioError com

Erro # 2032 fluxo de erro

// Tentei com o caminho prefixado com "http: // .." "file: // .." "// .." e "..")

var path:String = "http://../assets/the_song.mp3";

var url:URLRequest = new URLRequest( path );

var sound:Sound = new Sound();

sound.addEventListener( IOErrorEvent.IO_ERROR, ioErrorHandler);

sound.addEventListener( SecurityErrorEvent.SECURITY_ERROR, secHandler);

sound.load(url);
Foi útil?

Solução

Bem, eu acabei de fazer um teste, colocando um mp3 em um diretório: soundTest/assets/song.mp3 em seguida, criar um swf que chama o mp3 em outro diretório:. soundTest/swfs/soundTest.swf e quando eu uso var path:String = "../assets/song.mp3"; seguida, ele compila sem erros

Qual é a sua estrutura de diretório real?

Outras dicas

A menos que você está indo para colocar um URL completo, não use http: // ou file: //

O som pode carregar um arquivo mp3 a partir de uma URL completa ou relativa. Você só precisa se certificar que seu URL está correto e válido.

Por exemplo, se o caminho completo para o arquivo é http: //www.something. com.br / ativos / the_song.mp3 , um caminho de "/assets/the_song.mp3" iria funcionar.

Você realmente deve baixar HttpFox para o Firefox. Este SNIFFER permite-lhe ver os dados que está fluindo através do browswer. Você pode ver os arquivos de seu carregamento, incluindo os caminhos para cada um, e você pode até mesmo cheirar GET e POST variáveis. Isto irá mostrar-lhe onde os arquivos estão sendo retirado e baseado fora do que você pode corrigir seus caminhos relativos em conformidade.

https://addons.mozilla.org/en-US/firefox / addon / 6647

Importante:

Todos os ativos externos chamados a partir do SWF são relativos ao carregamento de arquivos html-los quando carregado na web, não o SWF. A única exceção, e isso é algo que começou com AS3, de FLV são relativos ao SWF, não o documento HTML de carregamento do SWF como qualquer outro ativo. É por isso que sniffers são uma ferramenta importante, eu riscado minha cabeça por um tempo até que eu notei o URL no sniffer estava chamando um caminho estranho.

Abaixo está como você pode carregar o som.

var soundRequest:URLRequest = "path/to/file.mp3";
var s:Sound = new Sound(soundRequest);
var sChannel = s.play(0, int.MAX_VALUE); //Causes it to repeat by the highest possible number to flash.
//Above starts the sound immediatly (Streaming);

//Now to wait for completion instead, pretend we didnt start it before. s.addEventLister(Event.SOUND_COMPLETE, onSComplete, false, 0, true); function onSComplete(e:Event):void { var sChannel = s.play(0, int.MAX_VALUE); //Causes it to repeat by the highest possible }

Em ambos os protocolos, RTMP e HTTP, o caminho deve ser - "path / to / mp3: file.mp3" ou "path / to / mp3: file". Eu posso lembrar. Verifique ambos.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top