Jump to content


Marcos de Paula Muniz

Member Since 04/01/2007
Offline Last Active 07/12/2009, 08:49
-----

Topics I've Started

Variaveis Retornando Undefined

07/12/2009, 08:35

Olá pessoal, estou com um problema no meu action script, eu fiz um arquivo flash para ler o título de noticias de um arquivo xml com a seguinte estrutura:

<?xml version="1.0" encoding="iso-8859-1"?>
<lista>
	<noticia titulo="titulo da noticia 1"/>
	<noticia titulo="titulo da noticia 2"/>
	<noticia titulo="titulo da noticia 3"/>
	<noticia titulo="titulo da noticia 4"/>
</lista>

Criei algumas funções para fazer isso, primeiro eu chamo uma função para ler o xml e armazenar o seu conteúdo em um array, depois eu chamo um setInterval para que a cada 3 segundos o título da notícia seja trocada pelo título da proxima noticia do array.

Eu sei que a leitura do xml está correta, pois testei ela, porém as variáveis que uso para controlar as funções retornam undefined. Inclusive, eu só consigo ler o array dentro da função onLoad do xml, fora dela o array também começa a me retornar undefined.

Eu pesquisei na internet sobre variaveis globais no flash, achei o _global e o _root, mais não consegui fazer funcionar, por favor, alguém me ajude a colocar esse código funcionando, segue abaixo o código do meu flash:

// variavel que recebe o indice do item do array a ser mostrado em seguida
var indice:Number;

// array com titulos das noticias
var tituloDinamico:Array = new Array;

var timer;

function leXml(){
	var arquivo:XML = new XML();
	arquivo.ignoreWhite = true;
	arquivo.onLoad = function(sucess) {
		if (sucess) {
			var nodes = arquivo.firstChild.childNodes;
			for (var i = 0; i<nodes.length; i++) {
				tituloDinamico.push(nodes[i].attributes.titulo);
			}
		}
	}
	arquivo.load("lista.xml");
	indice = 0;
	proximaNoticia(indice);
	timer = setInterval(trocaIndice(), 3000);
}

function proximaNoticia(posicao){
	// atualiza o texto no flash dinamicamente
	meuTexto.text = tituloDinamico[posicao];
}

function trocaIndice(){
	if(indice == (tituloDinamico.length - 1)){
		clearInterval(timer);
		indice = 0;
		proximaNoticia(indice);
	} else{
		indice ++;
		proximaNoticia(indice);
	}
}

leXml(); // inicia a execução

Desde já, obrigado.

Lista De Reprodução Sequencial De Vídeos Flv

28/11/2009, 14:08

Olá pessoal, preciso urgente da ajuda dos conhecedores de flash e action script.

Preciso fazer um aplicativo em flash que rode videos flv em stream de forma sequencial, onde o arquivo flash vá buscar a lista de reprodução em um arquivo xml que eu gerarei em php. O xml conterá as seguintes informações: caminho do vídeo e tempo do video. Essas informações já serão armazenadas no xml na sequencia em que os vídeos serão reproduzidos.

O problema é que eu não sei nada de flash, muito menos de action script e meu patrão me deu até 04/12/09 pra entregar isso pra ele ou então eu serei despedido. Preciso da ajuda de algum filho de Deus para que eu não perca o meu emprego.

A parte em php pra gerar o xml eu já tenho pronto, falta agora o arquivo flash que funcionará como um reprodutor sequencial de vídeos. Ah, se for preciso adicionar mais informações no xml não tem problema.

O arquivo em flash deverá abrir em tela cheia, ele não terá opção de play, pause, etc... quando der 2 cliques nele ele deve simplesmente carregar o xml que estará em um endereço na web e tocar os vídeos de forma sequencial, ao terminar a lista de reprodução o arquivo deve remontar a lista, consultando novamente o arquivo xml do site, pois se ouver alguma mudança no arquivo xml, ela deverá ser repassada para o flash na proxima reprodução da lista. Ou seja, o arquivo em flash vai ficar reproduzindo a lista do xml sem parar, só que preciso verificar toda vez que chegar no final da lista se ouve mudança na mesma pra atualiza-la caso haja.

O arquivo flash (.swf) ficará rodando local aqui na recepção da empresa da empresa, o arquivo xml e os vídeos .flv que serão reproduzidos pelo flash ficarão no servidor do site.

Por favor, que souber como fazer isso, me ajudem, me passe o código comentado ou então me ensinem a fazer, serei eternamente grato a quem poder me ajudar.

Abraços a todos

IPB Skin By Virteq