Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Passo a Passo de como abrir videos do youtube no flash e fechar o som deles!!!
Meu blog onde se encontra esse passo a passo tbm:
Para esse Passo a Passo é preciso 3 botões
1) Crie 3 botões, para criar um botão, crie qualquer desenho na tela, selecione o objeto, depois clique em modify e convert to a simbol (F8) e de o nome que quiser ao botão, repita isso por 3 vezes para fazer os 3 botões.
2) Clique em cima do botão, escolha a opção propriedades ctrl+f3 caso não tenha essa janela já aberta. e instancie eles de bt_video1, bt_video2 e bt_video3 sucessivamente.
3) Após criar os 3 botões crie uma nova layer(camada) na timeline, a linha do tempo do flash onde se usa normalmente para fazer as animações.
4) Nessa nova layer é onde vamos por nossos actions então nomeie ela de Actions. Para fazer isso clique duas vezes sobre ela com o botão esquerdo e mude o nome... como se muda o nome de um icone do windows, ou clique com o botão direito e vá em propriedades e de o novo nome a ela.
5) Clique agora no primeiro frame dessa camada e abra o campo para usarmos o ActionScript.
6) Vamos usar o seguinte código:
//Libero os dominios que o youtube precisa para não entrar em loop de erro
System.security.allowDomain("[http://www.youtube.com"](http://www.youtube.com));
System.security.allowDomain("[http://s.ytimg.com/yt/swf/"](http://s.ytimg.com/yt/swf/));
System.security.allowDomain("[http://i3.ytimg.com/"](http://i3.ytimg.com/));
// Primeiro passo para se carregar algo externo
// É criar a chamada da classe MovieClipLoader();
var video_mcl:MovieClipLoader = new MovieClipLoader();
// Agora você precisa criar um clip para carregar o MovieClip externo.
var container:MovieClip = _root.createEmptyMovieClip("container", -1);
// Cria-se o objeto de Listener
var mclListener:Object = new Object();
// Adiciona o listener ao objeto
video_mcl.addListener(mclListener);
// Quando o load do arquivo ocorrer, é acionado o onLoadInit, otima hora para se dar resize, ou mexer com posicionamento
mclListener.onLoadInit = function(target_mc:MovieClip) {
// Coloca seu código de resize ou posicionamento
target_mc._x = 100;
target_mc._y = 0;
};
// Agora você pega a ID do video do youtube e o endereço
var endereco:String = "[http://www.youtube.com/watch?v=";](http://www.youtube.com/watch?v=)
//Coloco o nome dos videos que vou abrir
var youtube_video1:String = "jQ66BY5iYsw";
var youtube_video2:String = "tT5kZiEUeB4";
var youtube_video3:String = "2r5j4YZjnA4";
//Botões que vão abrir o youtube e fechar o som
bt_video1.onPress = function() {
video_mcl.unloadClip(container);// <----------- decarrega se tiver algum video carregado
container.stopVideo();
container.clearVideo();
video_mcl.loadClip(endereco + youtube_video1,container); //<------------ carrega o video
};
bt_video2.onPress = function() {
video_mcl.unloadClip(container);// <----------- decarrega se tiver algum video carregado
container.stopVideo();
container.clearVideo();
video_mcl.loadClip(endereco + youtube_video2,container); //<------------ carrega o video
};
bt_video3.onPress = function() {
video_mcl.unloadClip(container);// <----------- decarrega se tiver algum video carregado
container.stopVideo();
container.clearVideo();
video_mcl.loadClip(endereco + youtube_video3,container); //<------------ carrega o video
};Edited
Adicionando o código para mostrar como o código funciona!
Link para download do código:
Abraços
olha deu certo mas quando eu clico em um video depois clico no outro o audio do primeiro ainda continua o.o
Pode ter ocorrido do youtube ter atualizado e meu código não funcionar mais...
Procure a respeito de google api do youtube para flash existem alguns que funcionam que é uma maravilha.
abraços
Como eu faço para redimensionar esse vídeo?
Abs.
>
Como eu faço para redimensionar esse vídeo?
Abs.
Até consegui redimensionar, mas o meu filme fica preso, os botões para outras área param de funcionar.
Alguém sabe porque?
Para redimensionar eu usaria o onLoadInit da classe MovieClipLoader()
Assim:
mclListener.onLoadInit = function(){
//container._xscale = container._yscale = conta matematica de resize
}
Assim você consegue redimensionar tranquilamente seu MC que contem o youtube...
Agora quanto ao fato dos botões pararem de funcionar... não sei... nunca aconteceu comigo provavelmente é algum erro em seu código.
Se quiser poste aqui ou na parte de flash sua dúvida ou problema... para que eu ou outro usuario responda sua pergunta.
Abraços
Olá,
está aparecendo a seguinte mensagem quando eu clico no botão:
Security Sandbox Violation
SecurityDomain 'http://s.ytimg.com/yt/swf/cps-vfl118234.swf' tried to access incompatible context 'http://www.youtube.com/watch?v=4_nTlsTK7qo&feature=rec-HM-r2'
Você sabe o que pode ser isso?
Muito legal este post!
o target_mc._x e _y não está fazendo efeito dentro do onloadInit. Com isso também não consigo redimensionar o container.
Para mudar a posição na tela, eu fiz isto e deu certo:
// Agora você precisa criar um clip para carregar o MovieClip externo.
var container:MovieClip = _root.createEmptyMovieClip("container", -1);
container._x = 200;
container._y = 100;
mas redimensionar não estou conseguindo.
é que onLoadInit é com letra maiuscula o Load e o Init
As vezes o forum deixa com letra minuscula =(
Quanto ao security é só colocar o dominio na questão de segurança que isso some ;)
abraços
Eu consegui colocar os vídeos tudo certo, mas como eu tenho 5 paginas no site quando eu clico em outra, q não é do video o som continua por tras, o video fecha mas o som coninua; copie o codigo igual já revisei varias vezes mas não sei, derepente você tem alguma idéia do que pode cê?Grato desde já.Abração...
Bem vindo kazemiro
A resposta já está no código para isso que você procura
aqui:
bt_video2.onPress = function() {
video_mcl.unloadClip(container);// <----------- decarrega se tiver algum video carregado
container.stopVideo();
container.clearVideo();
video_mcl.loadClip(endereco + youtube_video2,container); //<------------ carrega o video
};
Veja o código container.stopVideo() container.clearVideo()
Esses códigos servem para parar o video e o som...
Então o que você deve fazer é criar uma variavel que indique para o menu de seu site, se tem videos rolando ou não se tiver executa essa ação ai vai para a página requisitada.
Abraços
Variavél, agora me perdi de vez, tipo em que local devo inseri,eu tenho apenas um video no site, clico no botão e o video começa, mas e c a pessoa quiser fechar o video antes de terminar, eu poderia fazer um botão em que eu clicasse o video eo som se fechasse?Porque assim pra fechar o video so c eu trocar de pagina né, dai quando volto eu abro de novo para assisti,será que tem alguma action pra isso,eu so leigo nisso.Abraço...
Velho eu já respondi sua pergunta.
Você não leu o que eu escrevi.
Esses dois comandos aqui param o video:
container.stopVideo();
container.clearVideo();
Ai o que acontece é o seguinte
Você tem um video rodando ai provavelmente você criou os botões do seu menu com ON
Então o código de cada botão deveria ser algo assim:
on(press){
container.stopVideo();
container.clearVideo();
gotoAndStop(frame);
}
Simples não?
Essa é a maneira burra de se fazer... mas funciona.
Abraços
Tuto show hein!
Parabéns.
>
(...)
Então o código de cada botão deveria ser algo assim:
on(press){
container.stopVideo();
container.clearVideo();
gotoAndStop(frame);
}
Olá amigo berseck! Muito bacana esse tuto: código simples e funciona certinho!Bem, tenho uma dúvida parecida com a do camarada kazemiro.
O código acima, para um botão no menu do site, funcionaria mas no meu caso o SWF de vídeos é externo ao site principal. Como eu faço pra que o botão no SWF principal execute o stopVideo e clearVideo no SWF de vídeos?
Na verdade não sei muito bem como manipular os eventos, funções, variáveis, etc de SWF externos ao principal.
Grato desde já!
Se você tem um SWF externo você tem que alcançar esse SWF para que você consiga acessar o video para então dar o stop...
Mas se você quer só dar o stop pq não apenas remove de vez o clip?... fazendo um removeMovieClip()
Se não você vai ter que fazer algo como:
target.youtubeContainer.stopVideo();
target.youtubeContainer.clearVideo();
Onde target é o nome do MovieClip que você ta carregando o swf externo... e youtubeContainer é o nome do clip no qual você mandou abrir o youtube.
Abraços
Olá berseck, muito obrigado por responder!
Testei suas dicas mas não deram certo. Creio que meu problema é não saber acessar o SWF externo e referenciar os
targets de maneira correta.
Vou tentar te dizer como está meu projeto pra que você possa ajudar a encontrar meu erro:
diferença é que acrescentei 2 botões. Funcionando certinho!
SWF's externos (o swf dos vídeos p.ex.) e 1 MC que é o menu com os botões chamando os swf externos.
-Cada botão do menu tem código assim:
on (release) {
if (flag) {
this._parent.todos.gotoAndPlay(63);
this._parent.logo.gotoAndPlay(15);
}
loadMovie("videos.swf", this._parent.alvoroot);
gotoAndStop(29);desaparece.
Tentei colocar removeMovieClip(this._parent.alvoroot) antes do loadMovie e não funcionou.
Usando stopVideo(); clearVideo(); "target" seria o "this._parent.alvoroot"?
Não sei qual seria o "youtubeContainer": tentei "container", "video_mcl", "target_mc" e combinações deles mas sem
sucesso também.
Espero que você consiga entender.
Abraço
Você tem esse arquivo videos.swf?
Foi você quem criou?? se não foi tem como a pessoa quem criou passar pra ti o FLA?
Se não tiver baixe a ferramenta Sothink é um flash decompiler...
Decompile esse arquivo descubra em qual movie clip ele está carregando ai faça
this._parent.alvoroo.movieclip.stopVideo();
this._parent.alvoroo.movieclip.clearVideo();
Abraços
Eu que fiz o "vídeos.swf" usando o código do seu tutorial! Ele tá sendo carregado no MC vazio "alvoroot" do swf principal.
Eu devo colocar essas linhas de código na ação dos botões do menu no swf principal, correto?
this._parent.alvoroo.movieclip.stopVideo();
this._parent.alvoroo.movieclip.clearVideo();
A dúvida é o que eu coloco no lugar de "movieclip"?Baseado no seu código do início do tópico, o MC que recebe o vídeo do youtube é "container", "video_mcl" ou "target_mc"?
É isso que eu não tô conseguindo: 'entrar' no videos.swf através dos botões do swf principal e referenciar a execução do stopVideo() e do clearVideo().
Desculpe minha ignorância, ainda sou fraco em AS!
Obrigado pela atenção berseck!
O que recebe o video é o container então você vai ter que fazer isso:
this._parent.alvoroo.container.stopVideo();
this._parent.alvoroo.container.clearVideo();
Abraços
Tentei esse caminho na ação dos botões mas sem sucesso também!
Não imagino o que está errado. Creio que estou cometendo algum erro de referência aos MC. Pura falta de experiência!
Vou bater cabeça aqui pra tentar resolver! Fica difícil pra você descobrir onde eu tô errando sem ver o projeto todo né. Não quero mais tomar seu tempo, amigo!
Muitíssimo obrigado berseck!
Bem consegui resolver na base de uma bela "gambiarra" digna dos que, como eu, ainda possuem pouco conhecimento em AS!
Adicionei um frame no final do swf dos vídeos com as actions:
video_mcl.unloadClip(container)
container.stopVideo();
container.clearVideo();Há um STOP um frame antes desse, óbvio.
Nas actions dos botões no menu do swf principal que chamam os movies externos (como o swf dos vídeos) adicionei a linha:
this._parent.alvoroot.gotoAndStop(12);"alvoroot" é o target do movie externo (videos.swf no caso)e 12 é o frame que contém as ações dentro do videos.swf.A janela do vídeo do youtube é assim descarregada antes da chamada de outro movie!
Um dia eu chego lá e aprendo fazer as coisas direito! ;)
Mais uma vez obrigado ao amigo berseck pelo tutorial e pela ajuda!
Pessoal, este código é em AS2 certo? como faço em AS3?
o que preciso na verdade é só postar o video no site, não precisam os outros botões.
abs
mauricio
FAça assim:
var loader:Loader = new Loader();
loader.load(new URLRequest("[http://www.youtube.com/watch?v=ID](http://www.youtube.com/watch?v=ID) DO VIDEO"));
addChild(loader);
Abraços
Queria apenas inserir o vídeo no youtube mais não estou conseguindo no hotsite feito em flash.
1- Crio um novo simbolo
2- Escolho a opção movie clip
3- Escolho um nome qualquer.
3- Crio um retângulo
4- Insiro o mesmo no meio do palco
5- Insiro o código acima
6- Insiro o ID do vídeo do YOUTUBE.
7- Quando clico (CTRL+Enter) para testar o vídeo só aparece o retângulo e mais nada.
8-:S
Renovando o tutorial pra galera que tem dificuldades de entendimento de como estava antes ;)
Abraços