Fabio Meira 0 Denunciar post Postado Novembro 22, 2009 Eae pessoal, Estou com uma dúvida sobre um player de vídeo que estou fazendo, os componentes estou inserindo dinamicamente, através do add e remove, EventListener, estou mostrando e ocultando tanto o background do player como os controles, até aí tudo funciona corretamente, mas quando posiciono o mouse sobre os controles (PlayButton, SeekBar, etc...) o evento MOUSE_OVER da forma de background do player é disparado, que oculta tudo, não estou dominando esta lógica para ocultar/exibir todos os componentes corretamente. Segue o código que estou usando: import flash.system.Capabilities; fscommand("fullscreen", "true"); var pb_mc:player_background = new player_background(); var play_mc:PlayButton= new PlayButton(); var seek_mc:SeekBar = new SeekBar(); var tmp:Number; var t:Number = 0; pb_mc.alpha = t; pb_mc.addEventListener(MouseEvent.MOUSE_OVER, MostrarPlayer); pb_mc.addEventListener(MouseEvent.MOUSE_OUT, OcultarPlayer); //Posicionamento itens do player InserirItem(); function InserirItem():void { //resolucaoX = Capabilities.screenResolutionX; var resolucaoY:Number = stage.stageHeight; pb_mc.x = 0; pb_mc.y = resolucaoY - pb_mc.height; addChild(pb_mc); //Inserindo o PlayButton play_mc.alpha = t; addChild(play_mc); //Inserindo a SeekBar seek_mc.alpha = 0; addChild(seek_mc); } //Mostrando o Player(); function MostrarPlayer(e:MouseEvent) { tmp = setInterval(Exibir, 20); //background do player pb_mc.removeEventListener(MouseEvent.MOUSE_OVER, MostrarPlayer); pb_mc.removeEventListener(MouseEvent.MOUSE_OUT, OcultarPlayer); //PlayButton play_mc.y = 340; play_mc.x = 15; play_mc.alpha = t; //SeekBar seek_mc.y = 345; seek_mc.x = 45 seek_mc.width = 250; seek_mc.alpha = t; } function OcultarPlayer(e:MouseEvent) { tmp = setInterval(Ocultar, 20); pb_mc.removeEventListener(MouseEvent.MOUSE_OUT, OcultarPlayer); pb_mc.removeEventListener(MouseEvent.MOUSE_OVER, MostrarPlayer); } function Exibir() { pb_mc.alpha = (t/100); play_mc.alpha = (t/100); seek_mc.alpha = (t/100); if(t == 100) { clearInterval(tmp); pb_mc.addEventListener(MouseEvent.MOUSE_OUT, OcultarPlayer); } t+=10; } function Ocultar() { pb_mc.alpha = (t/100); play_mc.alpha = (t/100); seek_mc.alpha = (t/100); if(t == 0) { clearInterval(tmp); pb_mc.addEventListener(MouseEvent.MOUSE_OVER, MostrarPlayer); } t-=10; } Todas as respostas serão bem vindas. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 23, 2009 Bom vou explicar MOUSE_OVER signifca: Enquanto o mouse estiver sobre o elemento que você colocou essa ação ele vai fazer. Como você tem 3 elementos a barra onde colocou a ação, o play e o stop Toda vez que você colocar o mouse sobre o play... ele vai detectar um mouse_out da barra... pois você realmente saiu da barra... agora você ta sobre o botão que ta sobre a barra... mas você não está mais com o mouse sobre a barra... e por isso é disparado esse evento. O que você tem que fazer é criar um hitTest que pergunte... o mouse está menor que x% da tela? se sim... aparece a barra se não... a barra some Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Fabio Meira 0 Denunciar post Postado Novembro 24, 2009 Obrigado berseck pela resposta, entendi o que você disse, mas não consegui fazer na prática, dei uma pesquisada, mas também não consegui encontrar algo que resolvesse, estou indo por este caminho, não sei se esta correto. stage.addEventListener(MouseEvent.MOUSE_MOVE, ExibirOcultarPlayer); var tmp:Number; var t:Number = 0; function ExibirOcultarPlayer(e:MouseEvent) { if(e.stageY > 90) { MostrarPlayer(); } else { OcultarPlayer(); } } function MostrarPlayer() { tmp = setInterval(Exibir, 10); } function Exibir() { play_mc.alpha = (t/100); seek_mc.alpha = (t/100); if(t == 100) { clearInterval(tmp); } t+=2; } function OcultarPlayer() { tmp = setInterval(Ocultar, 10); } function Ocultar() { play_mc.alpha = (t/100); seek_mc.alpha = (t/100); if(t == 0) { clearInterval(tmp); } t-=2; } Não sei se este caminho é o correto. Todas as dicas e orientações serão bem vindas. Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Novembro 25, 2009 De uma olhada aqui como se faz hitTest em AS 3.0 http://www.foundatio.../as3hittesting/ Lembrando que o que você vai testar é a posição do mouse mouseX e o mouseY Abraços Compartilhar este post Link para o post Compartilhar em outros sites