kirax 0 Denunciar post Postado Setembro 29, 2010 Fala galera, to tentando construir um site todo em Flash AS3. Como é minha primeira tentativa to com dificuldades de importar um SWF externo com PreLoader. O que pretendo que faça é o seguinte, quando a pessoa clica pra ver meu portfolio o botão btn1 tem uma function pra ir para a label "portfolio". Quando abrir portfolio começar a carregar com barra de Loading os swf externo que seria como por exemplo "trabalho1.swf", "trabalho2.sfw", "trabalho3.swf", etc. Para isso eu tenho que colocar a barra de loading no SWF externo exemplo "trabalho1.swf" ou eu coloco a action no arquivo principal? Um exemplo legal que achei que é idêntico ao que eu queria é o loaderMax da GreenSock que além de carregar o SWF principal ele carrega os SWF externo. http://www.greensock.com/loadermax/ Espero que não tenha ficado complexo de entender minha dúvida. Desde já, obrigado. ;) Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 30, 2010 Só usar o listener ProgressEvent.PROGRESS Assim: var loader:Loader = new Loader(); loader.load(new URLRequest("exemplo.swf")); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); function loadProgress(e:ProgressEvent):void{ // Crie seu loader aqui } function loadComplete(e:Event):void{ addChild(loader); } Abraços Compartilhar este post Link para o post Compartilhar em outros sites
kirax 0 Denunciar post Postado Setembro 30, 2010 Olá berseck, to tentando entender a action aqui mais está dando um erro nada a ver nessa linha: var loader.load(new URLRequest("exemplo.swf")); olha o erro: 1086: Syntax error: expecting semicolon before dot. Esperando ; antes do ponto, mas que ponto? oÔ Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Setembro 30, 2010 Opa Eu meti um var ali na frente... remove ele que ta errado certo é assim: loader.load(new URLRequest("exemplo.swf")); My bad! Abraços Compartilhar este post Link para o post Compartilhar em outros sites
kirax 0 Denunciar post Postado Outubro 4, 2010 Berseck surgiu mais uma dúvida, meu action está assim: var loader:Loader = new Loader(); loader.load(new URLRequest("arquivoExterno.swf")); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); function loadProgress(e:ProgressEvent):void{ addEventListener(Event.ENTER_FRAME, preLoad); function preLoad(e:Event):void{ var bytestoLoade:Number = loaderInfo.bytesTotal; var numberLoaded:Number = loaderInfo.bytesLoaded; if (bytestoLoade == numberLoaded){ removeEventListener(Event.ENTER_FRAME, preLoad); gotoAndPlay(2); }else { preLoader.preLoaderFill.scaleX = numberLoader/bytestoLoade; preLoader.bytesPercent.text = Math.floor(numberLoader/bytestoLoade*100) + "%"; } } function loadComplete(e:Event):void{ addChild(loader); } A questão agora é na parte gotoAndPlay(2); eu não quero que ele vá para o frame 2 e sim para o arquivo externo. Qual action eu teria que usar? Desde já, obrigado. Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 4, 2010 Remove o gotoAndPlay e deixa ele fazer o addChild dele quando da o onComplete Abraços Compartilhar este post Link para o post Compartilhar em outros sites
kirax 0 Denunciar post Postado Outubro 5, 2010 Berseck a barra não ta crescendo como se tivesse carregando, os números de porcentagem não aparecem e quando termina de carregar, a barra ainda continua estática na tela. Sabe o que pode ser? :o O as ta assim: var loader:Loader = new Loader(); loader.load(new URLRequest("arquivoExterno.swf")); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); function loadProgress(e:ProgressEvent):void { addEventListener(Event.ENTER_FRAME, preLoad); function preLoad(e:Event):void { var bytestoLoad:Number= loaderInfo.bytesTotal; var numberLoaded:Number = loaderInfo.bytesLoaded; if (bytestoLoad == numberLoaded) { removeEventListener(Event.ENTER_FRAME, preLoad); } else { preLoader.preLoaderFill.scaleX = numberLoaded/bytestoLoad; preLoader.bytesPercent.text = Math.floor(numberLoaded/bytestoLoad*100) + "%"; } } } function loadComplete(e:Event):void { addChild(loader); } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 5, 2010 Que isso aqui??? addEventListener(Event.ENTER_FRAME, preLoad); function preLoad(e:Event):void { var bytestoLoad:Number= loaderInfo.bytesTotal; var numberLoaded:Number = loaderInfo.bytesLoaded; if (bytestoLoad == numberLoaded) { removeEventListener(Event.ENTER_FRAME, preLoad); } else { preLoader.preLoaderFill.scaleX = numberLoaded/bytestoLoad; preLoader.bytesPercent.text = Math.floor(numberLoaded/bytestoLoad*100) + "%"; } } ??? O correto é assim: var loader:Loader = new Loader(); var campo:TextField = new TextField(); // Apenas para o exemplo addChild(campo); //Apenas para o exemplo campo.x = stage.stageWidth/2; //Apenas para o exemplo campo.y = stage.stageHeight/2; //Apenas para o exemplo loader.load(new URLRequest("http://forum.imasters.com.br/random_logos/logo3.png")); // Troque a URL pelo seu arquivo loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); function loadProgress(e:ProgressEvent):void{ var loaded = e.bytesLoaded; var total = e.bytesTotal; var perc = Math.round((loaded/total)*100); campo.text = perc+"%"; } function loadComplete(e:Event):void{ addChild(loader); } Abraços Compartilhar este post Link para o post Compartilhar em outros sites
kirax 0 Denunciar post Postado Outubro 5, 2010 Eu estava tentando fazer um PreLoader com barra que cresce conforme vai carregando e a porcentagem aparecendo abaixo. Sou leigo em AS mas entendi mais ou menos seu script e coloquei a barra de carregameto só que quand termina de carregar, a barra não some. Como faço para ela sumir no final? O Child serve pra isso? Olha como ta o script: var loader:Loader = new Loader(); loader.load(new URLRequest("ArquivoExterno.swf")); loader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loadProgress); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loadComplete); function loadProgress(e:ProgressEvent):void{ var loaded = e.bytesLoaded; var total = e.bytesTotal; var perc = Math.round((loaded/total)*100); caixatxt.text = perc+"%"; barra.scaleX = loaded/total; } function loadComplete(e:Event):void{ addChild(loader); } Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 5, 2010 você remove o child da barra Fazendo removeChild(barra) Pimba ela sumiu Ou faça barra.visible = false; Abraços Compartilhar este post Link para o post Compartilhar em outros sites
kirax 0 Denunciar post Postado Outubro 6, 2010 berseck deu certo, muito obrigado. :) Só mais uma dúvida, no caso eu queira definir a posição onde o swf carregado vai aparecer na página como devo aplicar isso no Loader? Preciso criar uma função pra isso? Como seria? Desde já, muitissimo obrigado. :D Compartilhar este post Link para o post Compartilhar em outros sites
Thiago de Oliveira Cruz 21 Denunciar post Postado Outubro 6, 2010 Bom ai só fazer: loader.x = valor desejado em pixels loader.y = valor desejado em pixels Abraços Compartilhar este post Link para o post Compartilhar em outros sites