Ir para conteúdo

POWERED BY:

Arquivado

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

mymorooka

[Resolvido] Carregando Imagens Externas dinamicamente

Recommended Posts

Bom dia pessoal

 

Estou com um problema na manipulação de imagens.

A ideia é criar um swf que eu não precise mais manipular depois de pronto, carregando dinamicamente N imagens e exibindo as na sequencia do arquivo txt. Então a manutenção seria alocar a imagem e editar o txt colocando a variavel e o caminho.

 

No arquivo CadImagens.txt

&0=img1.jpg&

&1=img2.jpg&

&2=img3.jpg&

&3=img4.jpg&

&4=img5.jpg&

&5=img6.jpg&

&6=img7.jpg&

&7=img8.jpg&

&8=img9.jpg&

 

e o codigo AS2

 

System.useCodepage = true;

 

var leitor_lv:LoadVars = new LoadVars;

var imagens_ar:Array = new Array;

var n, tamanho:Number = new Number;

 

leitor_lv.onLoad = function(){

for(var i in leitor_lv)

imagens_ar = leitor_lv;

n = 0;

tamanho = imagens_ar.length - 1;

while (n <= tamanho){

LoadImg.loadMovie(imagens_ar[n]);

trace(n);

trace(imagens_ar[n]);

// intervalo teria q entrar aqui (um pause no codigo)

n = n+1;

}

}

leitor_lv.load("CadImagens.txt");

 

 

O problema é que não consegui criar uma pausa para que ele exibi-se uma imagem por N segundos entre uma e outra imagem.

Não conheço muito sobre AS, praticamente um novato curioso =)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara por que você nao utiliza como por exemplo cada uma dessas imagens em um frames ai você ja estara escolhendo o tempo de cada uma , eu utilizo esse modo e bem mais pratico

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara por que você nao utiliza como por exemplo cada uma dessas imagens em um frames ai você ja estara escolhendo o tempo de cada uma , eu utilizo esse modo e bem mais pratico

 

Pq a troca de imagem tem uma frequencia alta e se for ficar dando manutenção em .fla vai dar um bom trabalho. e nem sempre serei eu qm irá dar manutenção nos .swf do site. Por isso pensei em fazer algo do tipo, mas com uma manutenção simples. Pq todo mundo sabe editar um txt e colocar igual ao q já esta é simples e dps soh alocar a imagem no diretorio e direcionar no txt. que o .swf faz o resto independente de qtas imagens vão ser carregadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá... Bo tarde...

 

não sei se é bem o que você queria mas... eu tentei e consegui chegar a isso:

 

http://rapidshare.com/files/175259544/teste.rar

 

Tem o fla, algumas imagens, xml e o swf.

 

esperto ter ajudado.

 

Abraços

Opa Obrigado eu vi o swf creio q pode ser isso.

 

Mas o arquivo .fla nao qr abrir esta dando erro ao abrir unexpected file format

Compartilhar este post


Link para o post
Compartilhar em outros sites

O arquivo não vai abrir por que ele foi feito em uma versão superior do FLASH

Você deve estar usando a versão 8 ou 7, ele deve ter feito esse FLA na versão superior.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom dia...

 

eu usei o cs3... mas aí vai o código.

 

 

import mx.transitions.Tween;

//Aqui setamos  a linguagem que o flash aceitará nos textos, o mesmo que sistema onde o flash player está rodando.
System.useCodepage = true;
//criamos a variável image_xml
image_xml = new XML();
//falamos para ela ignorar os espaços em branco.
image_xml.ignoreWhite = true;
//usamos onLoad para que quando o xml for carregado ele dê o resultado, se sim ou se não.
image_xml.onLoad = function (success:Boolean){
//se o xml for carregado com sucesso trace...
	if(success){
		trace("Xml carregado com sucesso");
		//chamamos a função conta.
		conta();
	}
//senão trace...
	else{
		trace("Falha ao carregar Arquivo Xml");
		break;
	}
}
//carregamos o xml.
image_xml.load("image.xml");

// Aqui criamos as variáveis para determinar o centro do palco.
	var stageWidth = Stage.width /2;
	var stageHeight= Stage.height /2;
//Aqui criamos um array
var qImages:Array = new Array();


		
//inicia a função conta();
conta = function(){
//Criamos a variácel len que recebe o nó de nosso interesse no xml.
		var len = image_xml.firstChild.childNodes;

var total:Number = len.length;
// fazemos um loop para armazenar as imagens no array.
for( j=0; j <= total; j++){
			qImages.push({a: len[j].firstChild.nodeValue});
}
}


///

var intervalId:Number;
var count:Number = 0;
//essa variável corresponde ao intervalo que será chamada a função "executeCallback()"... nesse exemplo 1 seg.
var duration:Number = 1000;

function executeCallback():Void {
//criamos a variável que será correspondente ao número de imagens.
	var maxCount:Number = qImages.length - 2;
	var teste_mc:MovieClip = this.createEmptyMovieClip("my"+ count +"_mc", 1);
	teste_mc.createEmptyMovieClip("container_mc",99);
// Use MovieClipLoader para carregar a imagem.
	var my_mcl:MovieClipLoader = new MovieClipLoader();
	my_mcl.loadClip(qImages[count].a, teste_mc.container_mc);
// uma animação simples.
	var myTween:Tween = new Tween(teste_mc, "_x", mx.transitions.easing.Elastic.easeOut, 0, 150, 3, true);
// um if para zerar e começar a exibir todas as imagens novamente.
if(count >= maxCount) {
		count = 0;
//chamamos a função limpara para começar de novo.
		limpar();
 }
count++;
}

//função que corresponde ao tempo de intervalo da função anterior "executeCallback()"
intervalo = function(){
	var intervalId = setInterval(this, "executeCallback", duration);
}

//função para limpar o intervalo.
limpar = function(){
	clearInterval(intervalId);
}
//chamamos a função intervalo.
intervalo();

Uma coisa... Eu fiz desse jeito pq sou aprendiz de tudo ainda, se você conseguir fazer desse código gigante um menor e mais simples posta aí pra gente aprender a simplificar.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Obrigado a todos =)

 

 

Já arrumei o Flash CS3, ajustei o xml mas apartir da segunda vez ele não estava carregando a primeira imagem, vi q era isso

 

if(count >= maxCount) {

count = -1; //recebia 0 (Zero) troquei para -1 pq logo depois tem o incremento

//chamamos a função limpara para começar de novo.

limpar();

}

count++;

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.