Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Thiago de Oliveira Cruz

[Tutorial]Passo a Passo de como abrir videos do youtube!

Recommended Posts

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:

http://berseck.wordpress.com

 

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");
 System.security.allowDomain("http://s.ytimg.com/yt/swf/");
 System.security.allowDomain("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=";
 
 //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
};

Para testar só seguir o que falei passo a passo... colocar os botões instancialos carretamente como descrevi acima e copiar e colar o código acima...

 

Edited

 

Adicionando o código para mostrar como o código funciona!

 

Link para download do código:

youtube.fla

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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?

Compartilhar este post


Link para o post
Compartilhar em outros sites

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.

Compartilhar este post


Link para o post
Compartilhar em outros sites

é 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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...

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

(...)

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á!

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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:

- O Swf que contém os vídeos está com o código igualzinho o seu, com mesmos nomes de variáveis, etc; a única

 

diferença é que acrescentei 2 botões. Funcionando certinho!

- O palco do Swf principal do site contém 3 MC com animações, 1 MC vazio instanciado como "alvoroot" que recebe os

 

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);
Funciona tranquilo, mas se carrego o videos.swf e depois chamo outro swf, a janela do vídeo do youtube não

 

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

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!

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.