Web Direta 0 Denunciar post Postado Outubro 9, 2009 Olá a todos, Fiz um player personalizado, e no evento MOUSE_OUT da área deste player, todo conteúdo deve ser ocultado, e somente é exibido no evento MOUSE_OVER deste player. Coloquei os seguintes botões: PlayPauseButton; BackButton; ForwardButton; SeekBar; MuteButton e um Botão personalizado. Tudo funciona perfeitamente, exceto o indicador de tempo da SeekBar, apenas este não funciona, até a barra em si desaparece, mas o indicador, insiste a aparecer. Alguém poderia me dar uma dica, de como faço esse "cara" sumir? Desde já agradeço! Um abraço! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 9, 2009 Como foi feito seu código? Pois basta por SeekBar.visible = false no AS 3.0 ou SeekBar._visible = false no AS 2.0 Que ele desaparece... Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Web Direta 0 Denunciar post Postado Outubro 9, 2009 Como foi feito seu código? Pois basta por SeekBar.visible = false no AS 3.0 ou SeekBar._visible = false no AS 2.0 Que ele desaparece... Abraços Meu código é simples, trabalho com eventListener adicionando eventos quando o ponteiro do mouse executa over e out, que chama funções que executa um gotoAndPlay, executando um tween de alpha 0 de cada componente do player até 100, e ao contrário, no evento over do mouse. Todos os componentes do player estão desta forma, inclusive a seekBar, o background da seekBar funciona corretamente, fazendo a transição para exibir e ocultar, mas o indicador de tempo, fica sempre visível, mesmo com a seekBar oculta. Alguma dica? Obrigado! Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 10, 2009 Que indicador de tempo é esse ao qual você se refere. Pois timer, o reloginho... normalmente não vem junto com o SeekBar você cria ele separado como um campo de texto... E se esse campo de texto não tiver os mesmos efeitos que você criou para o resto ele não desaparece ;) Tem alguma foto ilustrativa? pois o componente de seek do flash não vem com reloginho até onde eu me lembre Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Web Direta 0 Denunciar post Postado Outubro 12, 2009 Então, não sei o nome correto deste item, é o indicador de progresso da reprodução do vídeo, que vem na seekBar, mas pra não sobrar mais dúvidas estou mandando o link deste item, conforme me orientou, em duas imagens, uma quando ocorre o evento MOUSE_OVER do player, e o outro no MOUSE_OUT. Perceba que no segundo link, o player não é mostrado, porém o indicador que me refiro (um traço vertical branco), continua visível. Este traço branco, eu personalizei, mas mesmo o original que é uma espécie de um triângulo preto, também não era ocultado. player mouse_over player mouse_out Obrigado, berseck pela ajuda! Agora só falta este detalhe... Aquele abraço! Compartilhar este post Link para o post Compartilhar em outros sites
blockmonork 1 Denunciar post Postado Outubro 12, 2009 Como você disse que está colocando alpha pra fazer os componentes desaparecerem, tenta colocar visible=false neste componente quando o alpha chegar a zero. Compartilhar este post Link para o post Compartilhar em outros sites
Web Direta 0 Denunciar post Postado Outubro 13, 2009 Como você disse que está colocando alpha pra fazer os componentes desaparecerem, tenta colocar visible=false neste componente quando o alpha chegar a zero. Opa obrigado blockmonork, assim que vi sua resposta, pensei, o cara me deu a solução, porém, usando a propriedade visible = false; não funcionou, ele continua aparecendo, coloquei até no primeiro frame do intervalo que faz desaparecer o player como um todo, e usando o visible como false, some a seekBar, mas não some o indicador branco de reprodução, fiquei surpreso, porque este indicador está dentro da seekBar, se estou ocultando ela deveria ser ocultada também. Mas, ainda continuo nas tentativas. Toda ajuda é bem vinda. Obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 13, 2009 Hmm você ta falando do indicadosr... de posição da barra o seek mesmo O que você ta procurando é o SeekBarHandler ;) Mude esse para visible = false tbm ;) Coloque uma instancia no SeekBar e uma instancia dentro do seek bar no SeekBarHandler E ai faça com que esse elementro tenha a propriedade visible on e off Abraços Compartilhar este post Link para o post Compartilhar em outros sites
Web Direta 0 Denunciar post Postado Outubro 16, 2009 É isso mesmo, mas como não manjo muito dos objetos do flash, eu tinha tentado, ocultar, coloquei nome na instância do indicador, agora, desta vez, até coloquei a seekBar original, porque eu havia formatado o tal do indicador. Não entendi, como você disse pra eu colocar o visible = false. Estou fazendo da seguinte forma: Na seekBar coloquei o nome da instância de bar_seekBar, e dentro deste Movie Clip na camada assets, tem outro MC que é o indicador que está no frame 2, coloquei o nome da instância como ponteiro. Na Scene 1 > 1º frame: function OcultarPlayer(e:MouseEvent): void { gotoAndPlay(12) //Para dar o efeito de fade usando o alpha. bar_seekBar.ponteiro.visible = false; // Tentativa de ocultar o indicador. } Como que ficaria neste cenário? Obrigado, berseck! Abraços! Compartilhar este post Link para o post Compartilhar em outros sites
blockmonork 1 Denunciar post Postado Outubro 16, 2009 Tente assim (criei com um setInterval no lugar do tween motion, tente dessa forma, talvez resolva): var tmp:Number; var t:Number = 100; OcultarPlayer(); function OcultarPlayer() { tmp = setInterval(this, "reduz", 20); } function reduz() { bar_seekBar.ponteiro._alpha = t; if (t == 0) { bar_seekBar.ponteiro._visible = false; // Tentativa de ocultar o indicador. // NOTE O "_" ANTES DO ATRIBUTO clearInterval(tmp); t = 100; } t--; } Estranho este comportamento, pois ocultando o componente seekBar, consequentemente deveria ocultar os objetos que estão dentro dele. Compartilhar este post Link para o post Compartilhar em outros sites
Web Direta 0 Denunciar post Postado Outubro 24, 2009 Tente assim (criei com um setInterval no lugar do tween motion, tente dessa forma, talvez resolva): var tmp:Number; var t:Number = 100; OcultarPlayer(); function OcultarPlayer() { tmp = setInterval(this, "reduz", 20); } function reduz() { bar_seekBar.ponteiro._alpha = t; if (t == 0) { bar_seekBar.ponteiro._visible = false; // Tentativa de ocultar o indicador. // NOTE O "_" ANTES DO ATRIBUTO clearInterval(tmp); t = 100; } t--; } Estranho este comportamento, pois ocultando o componente seekBar, consequentemente deveria ocultar os objetos que estão dentro dele. Obrigado blockmonork, pela resposta, e desculpe pela demora para responder. Estive fora por alguns dias. Coloquei o código porém está dando dois erros, na linha: tmp = setInterval(this, "reduz", 20); Erro: 1067: Implicit coercion of a value of type nome_arquivo.fla:Main Timeline to an unrelated type Function. Erro: 1067: Implicit coercion of a value of type String to an unrelated type Number. Realmente, acho estranho este comportamente, de não sumir o ponteiro da seekBar, sendo que ele está dentro dela... Mas enfim, parece um problema simples, mas até agora não consegui solucioná-lo. Mais uma vez, obrigado! Compartilhar este post Link para o post Compartilhar em outros sites
blockmonork 1 Denunciar post Postado Outubro 25, 2009 Você está usando AS3? Pois nunca vi esse tipo de erro. Acho que a forma mais rápida de você obter ajuda, é postar seu .fla e também o código usado nele(para que aqueles que não possuem a mesma versão do Flash que você, terem acesso ao código), explicando com detalhes os objetos do palco (seus nomes de instância, tipo do objeto, etc) abs; Compartilhar este post Link para o post Compartilhar em outros sites
Web Direta 0 Denunciar post Postado Outubro 28, 2009 Sim, estou usando o AS3. É verdade, vai facilitar postando o .fla, e o código, só desculpem o tamanho, é um pouco extenso. Blockmonork, estou postando o link do vídeo com o player personalizado e o arquivo .fla, seguem: video player, personalizado. .fla do video player Um detalhe, o código que você postou eu coloquei no .fla, porém está comentado, porque estava dando aquele erro que postei. Obrigado blockmonork, obrigado pessoal. PS. Lembrando que o meu objetivo é ocultar o indicador da seekBar no evento MouseOver (um triângulo preto, que indica a posição do tempo do filme.) import flash.events.*; import fl.video.*; stop(); var controleAtivo:uint = 0; video.addEventListener(VideoEvent.PLAYHEAD_UPDATE, MostrarTempoAtual); tmpTotal.addEventListener(MouseEvent.MOUSE_OVER, ControleOver); tmpTotal.addEventListener(MouseEvent.MOUSE_OUT, ControleOut); pclTime.addEventListener(MouseEvent.MOUSE_OVER, ControleOver); pclTime.addEventListener(MouseEvent.MOUSE_OUT, ControleOut); bt_muteButton.addEventListener(MouseEvent.MOUSE_OVER, ControleOver); bt_muteButton.addEventListener(MouseEvent.MOUSE_OUT, ControleOut); back_player.addEventListener(MouseEvent.MOUSE_OVER, MostrarPlayer); back_player.addEventListener(MouseEvent.MOUSE_OUT, OcultarPlayer); bt_playpause.addEventListener(MouseEvent.MOUSE_OVER, ControleOver); bt_playpause.addEventListener(MouseEvent.MOUSE_OUT, ControleOut); redimensionar.addEventListener(MouseEvent.CLICK, RedimensionarVideo); redimensionar.addEventListener(MouseEvent.MOUSE_OVER, ControleOver); redimensionar.addEventListener(MouseEvent.MOUSE_OUT, ControleOut); bt_backbutton.addEventListener(MouseEvent.MOUSE_OVER, ControleOver); bt_backbutton.addEventListener(MouseEvent.MOUSE_OUT, ControleOut); bt_forwardButton.addEventListener(MouseEvent.MOUSE_OVER, ControleOver); bt_forwardButton.addEventListener(MouseEvent.MOUSE_OUT, ControleOut); bar_seekBar.addEventListener(MouseEvent.MOUSE_OVER, ControleOver); bar_seekBar.addEventListener(MouseEvent.MOUSE_OUT, ControleOut); bar_seekBar.ponteiro_seekBar.addEventListener(MouseEvent.MOUSE_OVER, ControleOver); bar_seekBar.ponteiro_seekBar.addEventListener(MouseEvent.MOUSE_OUT, ControleOut); //inicio código do forum /* var tmp:Number; var t:Number = 100; //Esta sendo chamado na função OcultarPlayer() function Ocultar() { tmp = setInterval(this, "reduz", 20); } function reduz() { bar_seekBar.ponteiro._alpha = t; if(t == 0) { bar_seekBar.ponteiro._visible = false; clearInterval(tmp); t = 100; } t--; } */ //fim código do forum function ControleOver(e:MouseEvent):void { controleAtivo = 0; gotoAndStop(5); } function ControleOut(e:MouseEvent):void { controleAtivo = 1; } function PlayPause(e:MouseEvent):void { video.stop(); } function MostrarPlayer(e:MouseEvent):void { if(controleAtivo == 1) gotoAndStop(5); else gotoAndPlay(2); controleAtivo = 0; var minutosTotal:uint; var segundosTotal:uint; var tempoDoVideo:uint = video.totalTime; minutosTotal = Math.floor(tempoDoVideo/60); segundosTotal = tempoDoVideo%60; tmpTotal.tempoTotal.text = minutosTotal.toString() + ":" + segundosTotal.toString(); } function OcultarPlayer(e:MouseEvent):void { gotoAndPlay(12); //Ocultar(); //bar_seekBar.ponteiro.visible = false; //bar_seekBar.ponteiro_seekBar.visible = false; //bar_seekBar.ponteiro_seekBar.alpha = 0; } function RedimensionarVideo(e:MouseEvent):void { var alturaVideo:uint; var larguraVideo:uint; alturaVideo = video.height; larguraVideo = video.width; if(video.width == 640) { video.width = larguraVideo / 2; video.height = alturaVideo / 2; } else { video.width = larguraVideo * 2; video.height = alturaVideo * 2; } } function MostrarTempoAtual(e:VideoEvent):void { var segParcial:uint = video.playheadTime%60; var segundosParcial:String; segundosParcial = segParcial.toString(); if(segParcial < 10) pclTime.parcialTime.text = Math.floor(video.playheadTime/60).toString() + ":0" + segundosParcial.substr(0, 1); else pclTime.parcialTime.text = Math.floor(video.playheadTime/60).toString() + ":" + segundosParcial.substr(0, 2); } Compartilhar este post Link para o post Compartilhar em outros sites
Web Direta 0 Denunciar post Postado Outubro 31, 2009 Eae galera, alguém tem alguma dica pra me dar, pra ocultar toda a barra, incluindo o indicador? Até agora neste aspecto não tive muito sucesso! Toda dica, será muito bem vinda! Um abraço a todos! Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 31, 2009 O negocio eu ja disse Eh você acessar o ponteiro... ele deve ta instanciado já dentro do seu flash... em algum lugar. Sendo assim... você pode simplesmente atribuir um listener a ele... para descobrir se você clicar nele se ele é ele e se ta acessivel. por exemplo SeekBar.SeekBarHandler <------ Se isso ai existir e você colocar um listener SeekBar.SeekBarHandler.addEventListener(MouseEvent.CLICK, sayHi); function sayHi(e:Event):void{ trace('hi'); } Se isso funcionar... significa que ele existe... ai quando você faz a função de clicar de aparecer ou desaparecer ele some. Existem milhões e milhões de tutoriais explicando como faz um... como cria... da uma olhada neles. Não... não tem só de AS 2.0... Existem de AS 3.0... no kirupa se n me engano tem 1 Mas ta em inglês Abraços Compartilhar este post Link para o post Compartilhar em outros sites