Ir para conteúdo

Arquivado

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

Caruzo

JPG Externo com Carregador

Recommended Posts

Olá pessoal,estou com uma pequena duvida!!!gostaria de fazer um preloading para as imagens externas q chamo no meu swf...fiz uma pesquisa no forum e achei esse código de um amigo chamado "carneirinho"

function carrega(imagem, alvo){loadMovie(imagem, alvo);onEnterFrame = function(){c = alvo.getBytesLoaded();t = alvo.getBytesTotal();if(c == t && c > 10){delete onEnterFrame}}}ai para chamar a função você usa:carrega("imagem.jpg", _root.mc);

mas gostaria de acrescentar uma barrinha que cresce e mostra o andamento do carregando!!!como eu posso fazer essa modificação no código???agradeço a todos,[]´sCaruzo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Coloca essa função:

 

function carrega(imagem, alvo) {	loadMovie(imagem, alvo);	this.createTextField("my_txt", this.getNextHighestDepth(), alvo._x+10, alvo._y+10, 300, 100); //parametros: nome, nivel, _x, _y, largura, altura	my_txt.type = "dynamic";	my_txt.variable = "teste";	var my_fmt:TextFormat = new TextFormat();	my_fmt.color = 0x000000; //cor em formato hexa	my_txt.setTextFormat(my_fmt);	onEnterFrame = function () {		c = alvo.getBytesLoaded();		t = alvo.getBytesTotal();		teste = Math.round(c/t*100)+"%";		if (c == t && c>10) {			delete onEnterFrame;			my_txt.removeTextField();		}	};}

Não cria a barrinha, mas cria o número que vai de 0% a 100%

 

Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, muito boa essa sua modificação!!!!Pode ter certeza q eu irei usar e muito...Mas para o que preciso no momento é do esquima em barrinha...Se alguem puder me ajudar!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tive alguns problemas aqui com o onEnterFrame e então troquei para o setInterval.

 

O onEnterFrame estava pegando os bytes carregados do MC alvo que estava na tela, antes de começar a carregar o próximo no lugar dele.

 

Com o set interval, coloquei o tempo de refresh em 10ms, o que resolveu.

 

Hoje eu tava inspirado!!!

 

Oia o código ai, pronto para um CTRL + C e CTRL + V... heheheheeh

(mude o que precisar para a sua aplicação.)

 

function criaretangulo(nome:String, posix:Number, posiy:Number, larg:Number, alt:Number, cor:Number) {	this.createEmptyMovieClip(nome, this.getNextHighestDepth());	eval(nome).beginFill(cor);	eval(nome).lineTo(eval(nome)._x+larg, eval(nome)._y);	eval(nome).lineTo(eval(nome)._x+larg, eval(nome)._y+alt);	eval(nome).lineTo(eval(nome)._x, eval(nome)._y+alt);	eval(nome).lineTo(eval(nome)._x, eval(nome)._y);	eval(nome).endFill();	eval(nome)._x = posix;	eval(nome)._y = posiy;	return eval(nome);}function carrega(imagem, alvo) {	loadMovie(imagem, alvo);	fu = criaretangulo("fundo", 80, 80, 200, 10, 0x000000);//coloca cores em formato hexa.	fr = criaretangulo("frente", 80, 80, 200, 10, 0xFF0000);//parametros: x, y, largura, altura e cor	id = setInterval(loading,10,alvo);}function loading(alvo) {	c = alvo.getBytesLoaded();	t = alvo.getBytesTotal();	//trace(c/t*100);	fr._xscale = int(c/t*100);	if (c == t && c>10) {		clearInterval(id);		removeMovieClip("fu");		removeMovieClip("fr");	}}carrega("teste.swf",alvo);

Nota: o MC alvo deve existir no palco.

 

Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

function carrega(imagem, alvo) {	loadMovie(imagem, alvo);	this.createTextField("my_txt", this.getNextHighestDepth(), alvo._x+10, alvo._y+10, 300, 100); //parametros: nome, nivel, _x, _y, largura, altura	my_txt.type = "dynamic";	my_txt.variable = "teste";	var my_fmt:TextFormat = new TextFormat();	my_fmt.color = 0x000000; //cor em formato hexa	my_txt.setTextFormat(my_fmt);	onEnterFrame = function () {		c = alvo.getBytesLoaded();		t = alvo.getBytesTotal();		teste = Math.round(c/t*100)+"%";		if (c == t && c>10) {			delete onEnterFrame;			my_txt.removeTextField();		}	};}

Ludman eu tentei adaptar esse seu script a minha galeria de fotos mas não fui feliz, será que você pode me ajudar?

 

Meu script é esse:

 

galeriaFlash = new XML();galeriaFlash.ignoreWhite = true;galeriaFlash.onLoad = function(success) {	//portfolioTag = this.firstChild;	numImagens = this.firstChild.childNodes.length;	espaco = 50;	for (i=0; i<numImagens; i++) {		this.criarImagem = this.firstChild.childNodes[i];		this.criarThumbs = thumbnails.createEmptyMovieClip("thumbnail"+i, i);		this.criarThumbs._y = i*espaco;		this.criarCarregar = this.criarThumbs.createEmptyMovieClip("thumbnail_image", 0);		this.criarCarregar.loadMovie(this.criarImagem.attributes.thumbnail);		this.criarThumbs.titulo = this.criarImagem.attributes.titulo;		this.criarThumbs.imagemG = this.criarImagem.attributes.imagemG;		this.criarThumbs.onRelease = function() {			carregaImagem.loadMovie(this.imagemG);			titulo_txt.text = this.titulo;		};	}};galeriaFlash.load("galeria.xml");

Compartilhar este post


Link para o post
Compartilhar em outros sites

Vê se isso resolve:

 

function carrega(imagem, alvo) {	loadMovie(imagem, alvo);	//parametros: nome, nivel, _x, _y, largura, altura	this.createTextField("my_txt", this.getNextHighestDepth(), alvo._x+400, alvo._y+130, 345, 230);	my_txt.type = "dynamic";	my_txt.variable = "teste";	var my_fmt:TextFormat = new TextFormat();	//cor em formato hexa	my_fmt.color = 0xCC0000;	my_txt.setTextFormat(my_fmt);	onEnterFrame = function () {		c = alvo.getBytesLoaded();		t = alvo.getBytesTotal();		teste = Math.round(c/t*100)+"%";		if (c == t && c>10) {			delete onEnterFrame;			my_txt.removeTextField();		}	};}galeriaFlash = new XML();galeriaFlash.ignoreWhite = true;galeriaFlash.onLoad = function(success) {	//portfolioTag = this.firstChild;	numImagens = this.firstChild.childNodes.length;	espaco = 50;	for (i=0; i<numImagens; i++) {		this.criarImagem = this.firstChild.childNodes[i];		this.criarThumbs = thumbnails.createEmptyMovieClip("thumbnail"+i, i);		this.criarThumbs._y = i*espaco;		this.criarCarregar = this.criarThumbs.createEmptyMovieClip("thumbnail_image", 0);		this.criarCarregar.loadMovie(this.criarImagem.attributes.thumbnail);		this.criarThumbs.titulo = this.criarImagem.attributes.titulo;		this.criarThumbs.imagemG = this.criarImagem.attributes.imagemG;		this.criarThumbs.onRelease = function() {			//carregaImagem.loadMovie(this.imagemG);			carrega(this.imagemG,carregaImagem);						titulo_txt.text = this.titulo;		};	}};galeriaFlash.load("galeria.xml");

Vê se é isso.. não testei...

 

Falows

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui com esse código que achei na net e alterei :D

 

function iniciar_carregador(imagem_a_carregar) {	loadMovie(imagem_a_carregar, "carrega_imagem");	_root.onEnterFrame = function() {		info_campo._visible = true;		info_carregar = carrega_imagem.getBytesLoaded();		info_total = carrega_imagem.getBytesTotal();		porcentagem = Math.floor(info_carregar/info_total*100);		info_campo.text = porcentagem+ "%";		if (porcentagem>=100) {			//delete this.onEnterFrame;			//info_campo.removeTextField();			info_campo._visible = false;		}	};}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Meu problema é com a fonte...

O loadin ele faz em preto, só aparece a porcentagem em branco qndo eu clico mais uma vez na foto já conluido loading.

 

olha como eu fiz:

function carrega(imagem, alvo) {	loadMovie(imagem, alvo);	this.createTextField("my_txt", this.getNextHighestDepth(), alvo._x+10, alvo._y+10, 300, 100); //parametros: nome, nivel, _x, _y, largura, altura	my_txt.type = "dynamic";	my_txt.variable = "teste";	var my_fmt:TextFormat = new TextFormat();	my_fmt.color = 0xffffff; //cor em formato hexa	my_txt.setTextFormat(my_fmt);	onEnterFrame = function () {		c = alvo.getBytesLoaded();		t = alvo.getBytesTotal();		teste = Math.round(c/t*100)+"%";		if (c == t && c>10) {			delete onEnterFrame;			my_txt.removeTextField();		}	};}

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ae gelara beleza.. desculpe reviver esse topico, mas estou precisando disso q naum estou conseguindo usar... tb preciso q ao clicar no botao para carregar a imagem aparece pelo menos uma % indicando q esta sendo carregado algo.. p q o usuario naum fique boiando ou dando mil clics ..rs

 

o meu site é de uma empresa de malhas.. entao to fazendo um esquema q é assim ó EXEMPLO ......

 

entao o usuario ira passar o mouse no tecido(terá cinco cada tela) ai em cada tecido tera a opcao de colocar a roupda no manequim 1 ou 2... entao preciso q apareca algo indicando q esta sendo carregado... uma barra.... ou uma %.... mãssss agora vem o q eu acho q esta sendo o problema.. esse tecido esta sendo carregado dentro de um MC vaziue q esta dentro de um MC - (q é o manequim) .......

 

Ex.:

 

_root.manequim01.tecido

 

tenderam?

 

entao eu to carregando assim:

 

on(release){

_root.bela_noite_02.tecido.loadMovie("imagens/bela_noite_01.jpg");

}

 

assim ta funfando. como vcs podem conferir no link acima...... entao preciso de una barrinha.... to tendando usar esses AS acima mas naum estou tendo sucesso....... se alguem puder me ajudar eu agradeco

 

até la vou tentar aki..

 

OBS: estou colocando esses codigos no botoes

 

abracos e obrigado desde ja

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tentou acessar assim?

 

carrega("imagens/bela_noite_01.jpg", _root.bela_noite_02.tecido);

olá carneirinho beleza meu... acho q tentei tipo... fiz assim no final do codigo... ficando assim:

 

on(release){

// _root.bela_noite_01.tecido.loadMovie("imagens/bela_noite_01.jpg"); <<==== assim funfa

function criaretangulo(nome:String, posix:Number, posiy:Number, larg:Number, alt:Number, cor:Number) {

this.createEmptyMovieClip(nome, this.getNextHighestDepth());

eval(nome).beginFill(cor);

eval(nome).lineTo(eval(nome)._x+larg, eval(nome)._y);

eval(nome).lineTo(eval(nome)._x+larg, eval(nome)._y+alt);

eval(nome).lineTo(eval(nome)._x, eval(nome)._y+alt);

eval(nome).lineTo(eval(nome)._x, eval(nome)._y);

eval(nome).endFill();

eval(nome)._x = posix;

eval(nome)._y = posiy;

return eval(nome);

}

function carrega(imagem, _root.bela_noite_01.tecido) {

loadMovie(imagem, _root.bela_noite_01.tecido);

fu = criaretangulo("fundo", 80, 80, 200, 10, 0x000000);//coloca cores em formato hexa.

fr = criaretangulo("frente", 80, 80, 200, 10, 0xFF0000);//parametros: x, y, largura, altura e cor

id = setInterval(loading,10,_root.bela_noite_01.tecido);

}

function loading(_root.bela_noite_01.tecido) {

c = _root.bela_noite_01.tecido.getBytesLoaded();

t = _root.bela_noite_01.tecido.getBytesTotal();

//trace(c/t*100);

fr._xscale = int(c/t*100);

if (c == t && c>10) {

clearInterval(id);

removeMovieClip("fu");

removeMovieClip("fr");

}

}

carrega("imagens/bela_noite_01.jpg", _root.bela_noite_01.tecido); // eu ja tinha feito assim, mas da uns erros qdo dou CTRL Enter

}

 

foi isso ae q tu pergunto? :blink:

se eu falei baboseira desculpe... preu aprender AS é na mara.... tenho tremenda dificuldade com isso... sempre q preciso de algo busco em foruns, apostilas... etc....

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não era exatamente isso, porque você alterou a função, tem como você jogar seu fla num rapidshare da vida e postar ai pra eu dar uma olhada?

olha o fla ta nesse end FLA e eu to fazendo errado naum to? colocando todo esse codigo no botao? naum seria as funcoes no frame o carrega("imagens....."); no botao?

 

obrigado msm pela atencao ae....

 

 

EDITADO 13:30

 

carneirinho, pode esquecer tudo isso..... funciono.... http://forum.imasters.com.br/public/style_emoticons/default/joia.gif aprendi a usar..... eu coloquei as funcoes num frame e o carrega no botao... desculpe msm minha ignorancia......rs o que eu estava fazendo errado era q eu estava mudando o "termo" alvo pelo end do mc q teria de ser carregado... eu naum estava entendo essa parte... eu achei q o ALVO era o local q era pra ser carregado..... ai coloquei o codigo do jeitim e ta ai (acredite, naum tinha testado assim)..........

 

bom muito obrigado pela attencao....... veja como ta funcionando...... FUNCIONANDO

 

agora acredito q naum terei dificuldades em alterar conforme minha necessidade..... só tenho de mudar cor da barra e a posicao dela

 

mais uma vez obrigado... e qdo o tralho estiver pronto posto ele para vcs darem uma olhada ok.....

 

abracos http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

carneirinho... como é de prache apareceu um problema... q é o seguinte...

se eu clico no botao pra carregar a imagem no manequim 01 e enquanto esta crregando ele eu clico pra carregar a imagem no manequim 2... ele cancela o primeiro... e a barra de load q ele cria.... cria toda deformada ...... eu fiz assim...... criei 2 frames um com a funcao pra carregar com o botao 01 e no outro frame outras funcoes pra carregar com o botato 2.... coisa q naum deu certo.....

 

o pq q eu fiz isso? rs.... simples.. pq eu quero q ao clicar no botao 1 ele crie a barra em cima do manequim 01 e ao clicar no botao 2 ele crie a barra em cima do manequim 02.... como eu naum consegui fazer isso usando um IF.... resolvi criar 2 funcoes par ver se dava certo..... até deu..... mas se você repetir ou clicar em outro enquanto um carrega da erro.....

 

qual outro caminho q eu posso tentar?

 

o fla atualizado você baixa AKI

Compartilhar este post


Link para o post
Compartilhar em outros sites

INFORMACAO ATUALIZADA

 

seguinte. to quaaaase conseguindo...... agora naum da mais erro qdo um esta sendo carregado e você clica no outro..... o erro continua se você clicar para carregar a imagem e quanto esta carregando você clicar novamente no msm botao.. ele comeca a carregar novamente..... mas com a barra totalmente deformada....... ai você ergunta... mas quem q vai clicar novamente no botao se ja ta carregando.... como sabemos...... cada um com sua loucura né.... entao..... como eu destivo o botao enquanto carrega e depois vorta fica ativo qdo ja estiver carregado............. bom eu vou continuar aki..... vendo s econsigo isso..... acho q dai meus problemas acabam......

 

 

abraco e té mais.... :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

ATUALIZACAO MEGA SUER ULTRA PLUS MEGAZORD ADVANCE

 

http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif http://forum.imasters.com.br/public/style_emoticons/default/joia.gif http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

A/C de todos q tao lendo....rs

 

conseguiiiiii http://forum.imasters.com.br/public/style_emoticons/default/clap.gif .... agora enquanto naum terminar de carregar a imagem.. o botao fica desatvado..... cabo de carrega o danadinho vorta ativo ieeeeeeeeeebaaaa!!!!!! http://forum.imasters.com.br/public/style_emoticons/default/joia.gif

 

seguinte..... eu fiz assim ó:

 

function criaretangulo(nome:String, posix:Number, posiy:Number, larg:Number, alt:Number, cor:Number) {	this.createEmptyMovieClip(nome, this.getNextHighestDepth());	eval(nome).beginFill(cor);	eval(nome).lineTo(eval(nome)._x+larg, eval(nome)._y);	eval(nome).lineTo(eval(nome)._x+larg, eval(nome)._y+alt);	eval(nome).lineTo(eval(nome)._x, eval(nome)._y+alt);	eval(nome).lineTo(eval(nome)._x, eval(nome)._y);	eval(nome).endFill();	eval(nome)._x = posix;	eval(nome)._y = posiy;	return eval(nome);}function carrega(imagem, alvo) {	loadMovie(imagem, alvo);	fu = criaretangulo("fundo", -364, 145, 100, 7, 0x901E78);//coloca cores em formato hexa.	fr = criaretangulo("frente", -364, 145, 100, 7, 0xff9999);//parametros: x, y, largura, altura e cor	id = setInterval(loading,10,alvo);}function loading(alvo) {	bt1.enabled = false <<=========AQUI DESATIVO	c = alvo.getBytesLoaded();	t = alvo.getBytesTotal();	//trace(c/t*100);	fr._xscale = int(c/t*100);	if (c == t && c>10) {		clearInterval(id);		removeMovieClip("fu");		removeMovieClip("fr");		bt1.enabled = true <<========= E AQUI ATIVO	}}
tah! tudo bem... descobri a america.... mai descobri!!!! hihihihihi

 

entao cada botao tem 2 frames.... um com esse codigo acima e outro com o msm codigo mas com mudancos nos nomes ficando assim:

 

function criaretangulo2(nome2:String, posix2:Number, posiy2:Number, larg2:Number, alt2:Number, cor2:Number) {	this.createEmptyMovieClip(nome2, this.getNextHighestDepth());	eval(nome2).beginFill(cor2);	eval(nome2).lineTo(eval(nome2)._x+larg2, eval(nome2)._y);	eval(nome2).lineTo(eval(nome2)._x+larg2, eval(nome2)._y+alt2);	eval(nome2).lineTo(eval(nome2)._x, eval(nome2)._y+alt2);	eval(nome2).lineTo(eval(nome2)._x, eval(nome2)._y);	eval(nome2).endFill();	eval(nome2)._x = posix2;	eval(nome2)._y = posiy2;	return eval(nome2);}function carrega2(imagem2, alvo2) {	loadMovie(imagem2, alvo2);	fu2 = criaretangulo2("fundo2", 127, 145, 100, 7, 0x901E78);//coloca cores em formato hexa.	fr2 = criaretangulo2("frente2", 127, 145, 100, 7, 0xff9999);//parametros: x, y, largura, altura e cor	id2 = setInterval(loading2,10,alvo2);}function loading2(alvo2) {	bt2.enabled = false	c2 = alvo2.getBytesLoaded();	t2 = alvo2.getBytesTotal();	//trace(c/t*100);	fr2._xscale = int(c2/t*100);	if (c2 == t2 && c2>10) {		clearInterval(id2);		removeMovieClip("fu2");		removeMovieClip("fr2");		bt2.enabled = true	}}
perceberam a diferenca né... naum sei se é a maneira mais facil acredito q naum.... deve ter outra mais facil... mas funfo do jeitim ki eu quero......rs valew carneirinho pelo atencao ae...

 

ah. no botao fico assim:

 

on(release){carrega("imagens/bela_noite_01.jpg", _root.bela_noite_01.tecido);}
on(release){	carrega2("imagens/bela_noite_01.jpg", _root.bela_noite_02.tecido);}
abracoooo t+ http://forum.imasters.com.br/public/style_emoticons/default/clap.gif

 

OBS.: porem vale lembrar q o botao desativado é o botao do tecido escolhido e naum todos os botoes.... vou ver aki se consigo mais esse passo

 

EDITADO 16:20

 

naum sei onde ta o erro..... mas a barra do manequim aparece crescendo se você clicar tb no botao do manequim 1 ou na segunda vez q você clica no manequim 2 após ele ja ter cido carregado.... afff.... nunca acabam os erros :(

 

CONFIRAM

 

LINK

 

ARQUIVO FLA

Compartilhar este post


Link para o post
Compartilhar em outros sites

e ae galera.. to com um pequeno incomodo ainda nesse trabalho.... a barra de load do botao 2 só aparece se você clicar nele e no botao 1 do msm tecido..... ai depois q carregar uma vez, q a barra aparecer uma vez, ai você pode clicar nela direto q ela aprece normal... alguem sabe o pq!?valew :)

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.