Jump to content


Photo

Problemas Com Corregamento De Video


  • Faça o login para participar
7 replies to this topic

#1 Feänor

Feänor

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 29/08/2005, 17:44

Saudações....

Estou desenvolvendo um cd-room, que contem 4 áreas...
Bom tenho um swf principal com um menu de 4 itens ao clicar em faço um loadmovie para o o item especificado, assim cada área tem seu swf, que é carregado no principal, em um dos itens o swf contem um componente MediaPlayback que carrega um video flv, quando clico no menu do swf principal para carregar o swf que contem o video,da primeira vez o video passa sem problemas, quando passo para outro item e voltou para o que contem o video o mesmo não passa. (antes de carregar cada swf, exite um unloadmovie, portanto creio que esse não é o problema, tanto que o swf com video é carregado mas fica a janela do MediaPlayback sem que o video seja carregado)

Algum solução?

Desde já agradeço.

#2 Patrique

Patrique

    Super Veterano

  • Usuários
  • 1859 posts
  • Sexo:Não informado

Posted 29/08/2005, 18:01

E ai cara beleza bom vou colocar aqui um tutorial interessante que vc poderar tirar algumas coisas.

Galeria dinâmica de vídeos

Autor: Maxwell Dayvson

Nessa matéria irei mostrar como Vamos criar uma galeria de videos com dados dinâmicos via XML. Também teremos uma playlist para que o usuário adicione os videos favoritos dele, dnde as informações da playlist serão salvas num SharedObject.

O primeiro passo é adicionar ao stage do flash, os componentes: Tree, MediaDisplay, Button e DataGrid. Agora atribua o instance name de cada componente como mostra na imagem abaixo.

Tree - Instance Name lista_tr
MediaDisplay - Instance Name video_mp
DataGrid - Instance Name playlist_dg
Button - adicionar_bt e remover_bt (lembrando que são dois componentes Button)
E por fim, crie um TextField com o Instance Name de pl_txt.

Feito isso, vamos ao código. Todos os comentários estão feitos dentro dele.

Posted Image

/*
Importe as classes List, Button, MediaPlayback e Tree, essas são referentes aos componentes que serão utilizados nesse exemplo.
Fazendo isso quando for atribuindo uma variável do tipo Button por exemplo, o codehint será exibido listando todos os métodos do componennte
*/
import mx.controls.List;
import mx.controls.Button;
import mx.controls.Tree;
import mx.controls.MediaPlayback;

//Variável addV é do tipo Button, e vamos atribuir a mesma, o instance name do componente Button adicionar.
var addV:Button = adicionar_bt;
//Variável remV é do tipo Button, e vamos atribuir a mesma, o instance name do componente Button remover.
var remV:Button = remover_bt;
//Variável pl é do tipo Tree, e vamos atribuir a mesma, o instance name do componente Tree.
var lista:Tree = lista_tr;
//Variável video é do tipo MediaPlayback, e vamos atribuir a mesma, o instance name do componente MediaDisplay.
var video:MediaPlayback = video_mp;
//Defina o sharedObject, chamando ele a partir do método getLocal, o arquivo nesse caso ainda não é criado só quando for executado o método flush para gravar alguma coisa nele. Caso o mesmo já exista, é possível acessar os valores contidos nele. Assim como excluir, adicionar ou alterar.
//Nesse sharedObject, terá as informações da playlist. 
var playlist:SharedObject = SharedObject.getLocal("videogaleria");

//Objeto simples, que será usado para guardar as informações do último video selecionado no componente Tree
var videoAtual:Object ={};
//Objeto list, será usado como um listener para o componente Tree
var list:Object = {};
//A variável galeria é do tipo XML e irá receber uma instância da classe XML. 
var galeria:XML = new XML();
//Atruibua a propriedade ignoreWhite da classe XML o valor true. Para ignorar espaços existentes no XML.
galeria.ignoreWhite = true;
//Execute o método load passando como argumento a URL do arquivo XML que será carregado.
galeria.load("galeria.xml");
//Na condicional if abaixo, use a propriedade data do sharedObject, para verificar se lista é undefined;
if(playlist.data.lista == undefined){
//Caso seja, defina contatos como sendo um array
playlist.data.lista = [];
//O método flush, é responsável por gravar no sharedObject as informações que foram enviadas para a propriedade data;
playlist.flush();
};
/*Evento onLoad da classe XML é executado quando os dados são carregados, ou seja, a partir desse momento pode-se usar o conteúdo existente no XML.*/
galeria.onLoad = function():Void{
//Atribuindo a propriedade dataProvider do componente Tree (lista_tr) os nodes existentes no XML
lista.dataProvider = this.firstChild;

};
//Desabilitando os componentes Button, de remover e adcionar.
addV.enabled = remV.enabled = false;
//Definindo o evento change do componente Tree (lista_tr) o evento ocorre, na troca de seleção de um item para o outro 
list.change = function(item:Object):Void{

//Variável que receber um objeto com as propriedades do item selecionado no componente Tree
var sel:Object = item.target.selectedItem.attributes;
//Zerando as informações do videoAtual, para receber as novas informações
videoAtual ={};
//A condificional abaixo verifica se a propriedade url do item selecionado é diferente de undefined, com isso o play no video é iniciado e o objeto videoAtual, recebe os valores correspondentes ao video que está sendo exibido.
if (sel.url != undefined) {
video.contentPath = "";
//Habilitando o componente de adicionar e desabilitando o componente de remover
remV.enabled = !(addV.enabled = true);
//O método setMedia, recebe como argumento a url do arquivo que será carregado.
video.contentPath =sel.url;
//Executando o método play, para iniciar o video selecionado
/*
Atribuindo ao objeto videoAtual, três propriedades que são elas:
1º) URL - Vai receber a url do video que será carregado;
2º) INFOS - Vai receber informações referentes ao video inserido
3º) TITULO - Vai receber o titulo do video adicionado
*/
videoAtual.URL = sel.url;
videoAtual.INFOS = sel.info;
videoAtual.TITULO = sel.label;
};
/*Bom, por padrão, o menu apenas abre ou fecha seus subitens clicando na seta do lado esquerdo. Irei mudar isso, quando o menu for clicado mesmo fora da setinha, ele abra seus subitens.
Para tanto, iremos criar mais uma condição if averiguando se o item selecionando possui subitens.
Se verdadeiro ele executará o método setIsOpen do componente Tree que possui quatro parâmetros. São eles:node, open, animate, fireEvent.

node --> neste parâmetro será informado o item que deverá ser aberto. Para isso usamos a propriedade selectedItem para informar que item deverá ser aberto.

open --> neste parâmetro será informado um valor Boolean indicado se o item irá abrir (true) ou fechar(false), para tanto use o método getIsOpen que avalia se o mesmo item está aberto ou fechado (o método getIsOpen possui um único parâmetro que é o node). Ex: Se estiver aberto o valor retornado será true, então use o not logic (!) para converter o valor em false, fechando o menu.

animate --> Valor Boolean que indica se ocorrerá animação no ato de abrir ou fechar o menu.

fireEvent --> É o parâmetro que irá receber o evento que irá acionar o método setIsOpen. O fireEvent (evento de disparo) irá receber o valor "this" que indica o evento change do componente por estar dentro do mesmo.
*/
if (sel.subitens){
item.target.setIsOpen(item.target.selectedItem, !item.target.getIsOpen(item.target.selectedItem), true, this);
};
};
//Definindo o evento change do componente DataGrid (playlist_dg) o evento ocorre, quando um item for selecionado. 
playlist_dg.changeHandler = function():Void{
//Habilitando o componente de remover e desabilitando o componente de adicionar
addV.enabled = !(remV.enabled = true);
//A propriedade contentPath vai receber a URL do arquivo que será carregado, aqui estamos zerado o valor do video carregado, afim de carregar um próximo.
video_mp.contentPath = ''
//A propriedade contentPath vai receber a URL do arquivo que será carregado
video_mp.contentPath = this.selectedItem.URL;
};
//Defina o evento clickHandler do componente Button adicionar_bt. Esse evento é executado, quando o componente é clicado
addV.clickHandler = function(){
//Executando a função addPlayList, para adicionar o item selecionado na playlist;
addPlayList();
};
//Defina o evento clickHandler do componente Button remover_bt. Esse evento é executado, quando o componente é clicado
remV.clickHandler = function(){
//Executando a função removeSelectedItem, para remover o item selecionado da playlist;
removeSelectedItem();
};
//O Evento completo do MediaDilpay ocorre quando o video, terminar sua exibição, o que vamos fazer é pra quando o video que estiver sendo
//exibido terminar, ele passe para o video seguinte.
list.complete = function(){
//Verifica se o item selecionado do DataGrid é o útimo, caso seja ele selecionada o primeiro item
if((playlist_dg.selectedIndex+1)>=playlist_dg.length){
//Selecionando o primeiro item
playlist_dg.selectedIndex = 0;
}else{
//Selecionando o próximo item
playlist_dg.selectedIndex = playlist_dg.selectedIndex + 1;
};
//Execuando o evento changeHandler do DataGrid;
playlist_dg.changeHandler();
};

//Função responsável por adicionar o item selecionado, na playlist
function addPlayList(){
//Usando o método unshift da classe Array, para adicionar o video atual sempre no primeiro índice do array.
playlist.data.lista.unshift(videoAtual);
//Use o método flush para gravar no sharedObject a alteração feita.
playlist.flush();
//Executando a função de atualizaPlayList
atualizaPlayList();
};
//Função responsável por atualizar a playlist a cada exclusão ou inclusão de itens na mesma.
function atualizaPlayList(){
//Atribuindo a propriedade text do TextField, o resultado da quantidade de videos existentes na playlist
pl_txt.text = 'Qtd videos na PLAYLIST: '+ playlist.data.lista.length;
//Atribuindo a propriedade dataProvider, do componente DataGrid, o array de objetos contidos no sharedObject
playlist_dg.dataProvider = playlist.data.lista;

};
//Função responsável por remover da playlist o item selecionado no componente DataGrid;
function removeSelectedItem(){ 
/*Use o método slice, passando como argumento: 
A propriedade selecteIndex do DataGrid,
Voltando ao método splice, esse método é responsável por adicionar ou remover itens do array e modificar o mesmo, o segundo argumento é a quantidade de itens, que será retirado a partir da posição informada no primeiro argumento*/
playlist.data.lista.splice(playlist_dg.selectedIndex,1);
//Use o método flush para gravar no sharedObject a alteração feita.
playlist.flush();
//Setando a propriedade enabled do componente Button remover_bt, como false, deixando desabilitado
remV.enabled = false;
//Executando a função atualizaPlayList, para atualizar a playlist.
atualizaPlayList();
};
//Executando a função atualizaPlayList, pois caso exista algum video na playlist adicionado anteriormente, ele será exibido.
atualizaPlayList();
video.addEventListener("complete",list);
lista.addEventListener("change", list);
/*Abaixo use o método setStyle, para alterar os estilos do seu componente, 
primeiro alterei o themeColor, em seguida estou atribuindo uma openEasing, que vai receber uma classe Tween, para a animação 
escolhi a Bounce.
*/
lista.setStyle("themeColor", "haloBlue");
lista.setStyle("openEasing",mx.transitions.easing.Bounce.easeOut);
lista.setStyle("openDuration", 600);

Para baixar os codigos deste tuto clique aqui

Espero que te ajude

Um abraço,
Patrique André

#3 skatista.net

skatista.net

    Normal

  • Usuários
  • 87 posts
  • Sexo:Não informado

Posted 29/08/2005, 18:40

já tentou transformar o vídeo num movieclip?
ou seja, inserir o tal componente num movieclip, q vai tar dentro desse swf q é carregado?
tenta aê.. quem sabe num dá certo...
Skateboardzzzzzzz 4eva!!!!

#4 Feänor

Feänor

    Novato no fórum

  • Usuários
  • 11 posts
  • Sexo:Não informado

Posted 30/08/2005, 12:21

Patrique...
Não utilizei o tutorial que envio neste projeto, pois não era bem issoq ue eu precisava, as mesmo assim foi muito util obrigado.

Skatista...
tentei fazer o lance do movieclip e não deu certo, mas mesmo assim obrigado.

Bom pra quem tiver um problema parecido com o que descrevi neste topico, a unica soluçaõ que achei é deixar o MediaPlayBack no swf principal, com o loadmovie ele não exibi o filme na segunda chamada....

Se alguém souber solucionar o problema de outra forma, a resposta seria muito bem vinda


Feänor

#5 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 09/10/2017, 18:38

Amoxicillin Penicillin Synkapton Kaufen viagra Equivalencia Cialis Viagra Side Effects Keflex Second Day
Viagra Sold In The United States Clomid Usa Shippments Online Viagra Umsatz Pfizer viagra online prescription Cytotec Without Prescription

#6 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 25/10/2017, 01:02

Baclofene Dose Maximale viagra Power Pill 100
Ceftin Vs Amoxicillin Cialis Professional 20 Mg Germany viagra Where To Order Pyridium Mastercard Accepted Levitra Generic India Acquisto Cialis 5 Mg
Super Active Viagra Online Viagra Online France Buying Provera Online viagra online pharmacy Strep Throat Amoxicillin Dosage Viagra Without A Doctor Where To Buy Periactin Pills

#7 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 05/11/2017, 18:34

Direct Online Stendra Avana Internet Medication Shop Cheapeast Oklahoma Kamagra Vente En France Cialis Generique Tadalafil Comprimes viagra Generic Quality And Viagra
Cheapest Plavix Online Canadiana Pharmacy Cialis Soft online pharmacy Where Can I Buy Viagra In Buy Metformin Medicine
Zithromax Syphilis Treatment cialis online Rx World Manatoba

#8 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 28/11/2017, 18:50

Generic Viagra From Uk Cialis Levitra Comment Viagra buy viagra online Viagra A Contrareembolso Mrsa Zithromax Amoxicillin And Doseage
Discreet Shipping For Viagra viagra online Precio De Priligy En Espana
247 Drugs Shop Reviews cialis price Viagra Vente Libre Andorre Sildenafil 100




1 user(s) are reading this topic

0 membro(s), 1 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq