Ir para conteúdo

POWERED BY:

Arquivado

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

denys nich

[Resolvido] problemas com preloader

Recommended Posts

Olá!

sou novo aki no forum e tbm na parte de web desing, uso a algum tempo os programas da adobe, so agora profissionalmente, estou estudando muito a AS3.

http://testaebelegante.com.br/novosite/ esse é o meu primeiro site, q ta em faze final de teste.

estou tendo um problema com o preloader, num sem sei como remove-lo

 

 

esse é o codigo

var req:URLRequest = new URLRequest("Index.swf");
var loader:Loader = new Loader();

function fileLoaded(event:Event):void
{
	addChild(loader);
}

function preload(event:ProgressEvent):void
{
	var percent:Number = Math.round(event.bytesLoaded / event.bytesTotal * 100);
	preload_txt.text = String(percent) + "%";
}

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoaded);
loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, preload);
loader.load(req);
ele fica dentro do site depois de carregado, pq o fundo é o stage, e sendo todo em AS3, ele buga o site, trava as vezes o menu!

alguém tem idéia de como eu resolvo isso, deve ser simples, mas num to conseguindo ver a solução!

abrazzzz

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi denys, seja bem vindo ao fórum.

 

Também estou estudando AS3, seu tópico será útil a muitos usuários.

 

 

Observe que você cria uma função para o evento COMPLETE e manda adicionar o loader

 

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoaded);

function fileLoaded(event:Event):void
{
addChild(loader);
}

 

Penso que isso gere algum tipo de loop, mande recarregar, recarregar, infinitamente.

 

COMPLETE serve para definir o evento que vem depois que PROGRESS seja concluído.

 

Não sei se está correto, nunca fiz algo semelhante, mas observando alguns exemplos, para outras formas de usar um preloader, eu pensaria em usar um removeChild/removeListener. Não testei ainda.

 

Talvez tenha outros erros.

 

Seu code funciona para uma página ao testar no Flash, ao inserir no DW buga. Fica visível a porcentagem no background.

 

Tenho um material para fazer o preloader sumir (num DVD que ainda não assisti) vou dar uma conferida, também tenho interesse nisso.

 

 

Abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi denys, seja bem vindo ao fórum.

 

Também estou estudando AS3, seu tópico será útil a muitos usuários.

 

 

Observe que você cria uma função para o evento COMPLETE e manda adicionar o loader

 

loader.contentLoaderInfo.addEventListener(Event.COMPLETE, fileLoaded);

function fileLoaded(event:Event):void
{
addChild(loader);
}

 

Penso que isso gere algum tipo de loop, mande recarregar, recarregar, infinitamente.

 

COMPLETE serve para definir o evento que vem depois que PROGRESS seja concluído.

 

Não sei se está correto, nunca fiz algo semelhante, mas observando alguns exemplos, para outras formas de usar um preloader, eu pensaria em usar um removeChild/removeListener. Não testei ainda.

 

Talvez tenha outros erros.

 

Seu code funciona para uma página ao testar no Flash, ao inserir no DW buga. Fica visível a porcentagem no background.

 

Tenho um material para fazer o preloader sumir (num DVD que ainda não assisti) vou dar uma conferida, também tenho interesse nisso.

 

 

Abraços

 

 

Olá, Elektra!

 

muito obrigado pela ajuda! :D

 

a questão é q eu num sei onde colocar o removeChild,e nem como montar a function, e eu teria de colocar um "if" se estiver completo o load dai sim ele roda a função removeChild.

 

se puder me ajudar

 

abraços

Compartilhar este post


Link para o post
Compartilhar em outros sites

Encontrei algo para preloader interno.

 

Pelo que observei todos os codes que observei usam algum recurso para remover o objeto do stage (COMPLETE).

 

Em classe (adicionando o preloader com TextField) - arquivo de final de curso, jogaram numa pasta e a gente que se vire.

 

package {
	import flash.display.MovieClip;
	import flash.text.TextField;
	import flash.text.TextFormat;
	import flash.events.*;
	import flash.display.Loader;
	import flash.net.URLRequest;
	import flash.text.TextFieldAutoSize;
	
	
	public class PreLoaderSwfs extends MovieClip {
		
		public var porcentagem:uint;
		public var carregador:Loader = new Loader();
		public var campoTexto:TextField = new TextField();
		public var campoTextoFormata:TextFormat = new TextFormat();
		
			
		public function PreLoaderSwfs(arquivo:String):void {

			carregador.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress);
			carregador.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
			carregador.load(new URLRequest(arquivo));
						
			campoTextoFormata.font = "Arial Narrow";
			campoTextoFormata.bold = true;
			campoTextoFormata.color = 0x000000;
			campoTextoFormata.size = 60;
			campoTexto.y = 150;
			campoTexto.x = 250;
			
			campoTexto.autoSize = TextFieldAutoSize.LEFT;
			addChild(campoTexto);
		}
		
		private function onProgress(pe:ProgressEvent):void {
			porcentagem = (pe.bytesLoaded / pe.bytesTotal) * 100;
			campoTexto.text = porcentagem.toString();
			campoTexto.setTextFormat(campoTextoFormata);
		}
	
		
		// Funçao executada depois de completo o carregamento do loader
		public function onComplete(e:Event):void {
			removeChild(campoTexto);
			campoTexto = null;
						
			addChild(carregador);
			
			if (e.currentTarget.content.currentFrame == 19) {
				
				trace("ok!!!")
							
			}		
							
		}
			
	}
}

 

Preloader adicionado dentro de um container (timeline) para transição de páginas externas - autor: Michel Araújo >> http://videolog.uol.com.br/video.php?id=425919

É necessário ver o fla, mistura uma animação na timeline.

Exemplo que tenho publicado >> Clique aqui

 

 

DVD que mencionei, o code é bem simples, mas funciona:

 

carrega.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, mostrarPreloader);
carrega.contentLoaderInfo.addEventListener(Event.COMPLETE, sumirBarra);

//Função
function sumirBarra(e:Event):void {
	barra_mc.scaleX = 0;
}

function mostrarPreloader(e:ProgressEvent):void {
	var bc:uint = e.bytesLoaded;
	var bt:uint = e.bytesTotal;
	var pc:uint = bc * 100 / bt;
	barra_mc.scaleX = pc/100;
}

 

É aceitável que o seu preloader não desapareça, já vi isso, mas não deve bugar o carregamento das páginas.

 

Sugiro inicialmente conferir algum outro code que funcione adequadamente.

 

Para fazer sumir, conforme o tipo de preloader usado, com certeza há diversas opções.

 

 

Abraços

 

 

ps: eu preciso aprender a usar no carregamento inicial (main.swf) em uma classe, ainda chego lá.

Compartilhar este post


Link para o post
Compartilhar em outros sites

descobri o erro, muito obrigado pela ajuda, vlw mesmo!

o site tinha cenas em sequencia, q bugava, qdo eu botava o preloader.

a solução e refazer tudo em uma cena só!

fiz alguns testes e por hora tudo certo!

abrazzzzz

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.