..:: MX Studio Fóruns ::..: play stop som/audio com AS3 [RESOLVIDO] - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

play stop som/audio com AS3 [RESOLVIDO]

#1 User is offline   carcleo 

  • Group: Membros
  • Posts: 150
  • Joined: 14-April 05

Posted 23 December 2011 - 04:30 PM

Olá pessoal.

Tenho um dingo em mp3 pequeno.

Gostaria de colocar dois botões: um play e um pause nele alem de carrega-lo automaticamente ao iniciar o fime.

Tenho isso em AS2 mas em AS3 não estou achando.

Muito obrigado a quem puder ajudar.
0

#2 User is offline   carcleo 

  • Group: Membros
  • Posts: 150
  • Joined: 14-April 05

Posted 23 December 2011 - 06:37 PM

Bom, tentei usar assim:

    import flash.display.MovieClip;
    //
    import flash.events.Event;
    import flash.media.Sound;
    import flash.media.SoundChannel;
    import flash.net.URLRequest;
    //
        var sound:Sound;
        var channel:SoundChannel;

        sound = new Sound(new URLRequest('sons/singo.mp3'));

        carregar();

        function tocar(e:Event = null) 
           {
            channel = sound.play();
            channel.addEventListener(Event.SOUND_COMPLETE, tocar);
            }

        function parar(e:Event = null) 
           {
                channel.stop();
                channel.removeEventListener(Event.SOUND_COMPLETE, parar);
            }

        function carregar (e:Event = null) 
           {
            channel = sound.play();
            channel.addEventListener(Event.SOUND_COMPLETE, carregar);
            }
 

Não deu erro no IDE do Flash. Mas, quando rodo o swf gerado da o seguinte erro:
SecurityError: Error #2000: N⭠h�ontexto de seguran柠ativo.

Onde estou errando?
0

#3 User is offline   carcleo 

  • Group: Membros
  • Posts: 150
  • Joined: 14-April 05

Posted 23 December 2011 - 07:02 PM

Bom. Consegui em partes.

Para carregar o som foi fazer isso:
var soundClip:Sound=new Sound();
//Create a new SoundChannel Object
var sndChannel:SoundChannel=new SoundChannel();
//Load sound using URLRequest
soundClip.load(new URLRequest("sons/dingo.mp3"));
//Create an event listener that wll update once sound has finished loading
soundClip.addEventListener(Event.COMPLETE,onComplete,false,0,true);
function onComplete(evt:Event):void {
	//Play loaded sound
	sndChannel=soundClip.play();
}

Agora tenho outros dois problemas:

1)Como faço agora para dar play e pause nesse som usando as3?
Essa pergunta é porque : nome_do_botao.onRelease = function........... não funcionou no as3.

2) Nao sei o que foi que eu fiz, mas agora meu painel de AS em todas a linhas aparece o carcter PI. É o do matemática mesmo. Como faz para tirar isso?
0

#4 User is offline   carcleo 

  • Group: Membros
  • Posts: 150
  • Joined: 14-April 05

Posted 24 December 2011 - 09:00 AM

Puxa pessoal.

Ainda não consegui.

Ninguem sabe?
0

#5 User is offline   carcleo 

  • Group: Membros
  • Posts: 150
  • Joined: 14-April 05

Posted 24 December 2011 - 01:38 PM

Bom, consegui assim:
stop();
    import flash.display.MovieClip;        
	import flash.events.Event;   
	import flash.media.Sound;   
	import flash.media.SoundChannel;   
	import flash.net.URLRequest

        var sound:Sound;
        var channel:SoundChannel;

        sound = new Sound(new URLRequest('sons/dingo.mp3'));

      

        function tocar(e:Event = null) 
           {
            channel = sound.play();
            channel.addEventListener(Event.SOUND_COMPLETE, tocar);
            }

        function parar(e:Event = null) 
           {
                channel.stop();
                channel.removeEventListener(Event.SOUND_COMPLETE, parar);
            }

        function carregar (e:Event = null) 
           {
            channel = sound.play();
            channel.addEventListener(Event.SOUND_COMPLETE, carregar);
            }

carregar();
toca.addEventListener(MouseEvent.CLICK, tocar);
para.addEventListener(MouseEvent.CLICK, parar);

Agora preciso saber como fazer uma condiçao que diga: se o som já estive tocando, o botão play não execute açao. ou seja, não starte o som novamente

E sobre o caracter pi, foi só dar ctrl+shift+8 ai ele some.
0

#6 User is offline   carcleo 

  • Group: Membros
  • Posts: 150
  • Joined: 14-April 05

Posted 24 December 2011 - 07:59 PM

Ok.

Como eu faço para verificar se o som esta tocando sem ter que usar uma variavel booleana?

Existe algo do tipo

if(!playng)
{
}
?

Porque se eu usar boleano, depois que o som acabar, caso eu queira tocar ele de novo não daria. A não ser que eu clikasse no stop para virar a booleana. E eu não queria isso pois o visitante pode pensar que é defeito do site e não é.
0

#7 User is offline   carcleo 

  • Group: Membros
  • Posts: 150
  • Joined: 14-April 05

Posted 26 December 2011 - 10:35 AM

Pessoal, antes de mais nada, um Feliz Ano Novo a todos.

Bom.

        function tocar(e:Event = null) 
           {
	 if (isPlaying==false)
	 {
	 var channel = sound.play();
				 
	 var totalBytes:Number = sound.bytesTotal;
                 var loadeBytes:Number = sound.bytesLoaded;
				 
                 channel.addEventListener(Event.SOUND_COMPLETE, carregar);
	 txtBl.text =String(loadeBytes);
	if(loadeBytes/totalBytes<1)
	 {
	isPlaying=true; 
	}				 
	 else
	 {
	 isPlaying=false;
	 }
	 }
            }

Aqui estou tentando fazer duas coisas e não esta dando certo.

1) imprimir no campo de texto, a quantidade de bytes carregados do audio
2) setar a varfiavel booleana isPlayng para false assim que a divisão de bystes caRREGADOS pelo totalk de bytes der 1.

Onde estou errando?
0

#8 User is offline   carcleo 

  • Group: Membros
  • Posts: 150
  • Joined: 14-April 05

Posted 26 December 2011 - 05:28 PM

Como eu faço para pegar o valor de channel.position?

Eu sei que vai de 0 até 1 mas não achei no tutoriais como recuperar essew numero.

Tentei assim mas da erro:
var sound:Sound;
        var channel:SoundChannel;
        var posicao:Number = channel.position;
        sound = new Sound(new URLRequest('sons/dingo.mp3'));      
if ( posicao==0.8)
{
	parar();	// esse parar(), é só paara testar se seta funcionando o if
}

Da o seguinte erro:
TypeError: Error #1009: Não é possível acessar uma propriedade ou um método de uma referência de objeto nula.
	at index_fla::MainTimeline/frame2()


Como corrijo isso?
0

#9 User is offline   carcleo 

  • Group: Membros
  • Posts: 150
  • Joined: 14-April 05

Posted 26 December 2011 - 06:54 PM

Bom.

consegui

Acontece que eu estava pensando que o SOUND_COMPLETE, se referia ao som terminado seu download e não o som em execuçao ao seu termino.

Então, fiz assim na funçao toca:
        function tocar(e:Event = null) 
           {
			 if (isPlaying==false)
			 {
                 if(channel)
				 {          
				    channel.stop();     
				  }				 
				 channel = sound.play();
                 channel.addEventListener(Event.SOUND_COMPLETE, parar); (AQUI ESTVA PONDO REFERENCIA A FUNÇÃO TOCAR EM VEZ DE A FUNÇAO PARAR. AQUI O ERRO.)
				 isPlaying=true;
			 }
            }


Bom obrigado a todos que ajudarma e um Feliz Ano Novo
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




1 User(s) are reading this topic
0 membro(s), 1 visitante(s) e 0 membros anônimo(s)