Olá a todos,
estou mesmo a precisar de ajuda de alguém mais elucidado que eu...
É o seguinte,
primeiro fiz o preloader de uma forma que me parece simples e que
noutras situações funcionou. Criei um novo documento, com um loader
que carrega o swf do site propriamente dito para dentro do primeiro.
var loader:Loader=new Loader();
var req:URLRequest=new URLRequest("site.swf");
loader.load(req);
this.addChild(loader);
loader.contentLoaderInfo.addEventListener
(ProgressEvent.PROGRESS,loading);
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, loaded);
function loading(ev:ProgressEvent):void{
var percentil:Number=Math.round(ev.bytesLoaded/ev.bytesTotal*100);
preloader.percentagemTxt.text = percentil+"% a carregar...";
preloader.animacao.gotoAndStop (percentil); }
function loaded(ev:Event):void{
preloader.visible=false;}
Só que desta vez esta forma de resolver o problema não está a
resultar, porque depois do swf carregado, quando posiciona o menu em
relação ao stage ele dá erro:
TypeError: Error #1009: Cannot access a property or method of a null
object reference. at Main()
Ou seja, já não consigo aceder ao stage. Não estou de todo a perceber
porquê.
Disseram-me que em as2 se resolvia facilmente a situação assim:
this._lockroot = true; ou _global.newroot = this;
Mas não consegui nada semelhante em as3.
Então pensei: se isto assim não funciona é porque talvez não seja a
forma correcta de o fazer. Por isso tentei fazer o preloader sem usar
um segundo swf para onde carregar o primeiro. Mas também não tive
sucesso:
import flash.events.ProgressEvent;
public class Main extends MovieClip
{
private var seccaoTodas:MovieClip;
private var menu:Menu;
private var preloader:Preloader = new Preloader();
public function Main()
{
addChild(preloader);
preloader.animacao.stop();
this.loaderInfo.addEventListener(ProgressEvent.PROGRESS, loading);
this.contentLoaderInfo.addEventListener(Event.COMPLETE,
fim);
}
private function loading(ev:ProgressEvent):void
{
var percentagem:Number = Math.round(ev.bytesLoaded /
ev.bytesTotal
* 100);
preloader.animacao.gotoAndStop (percentagem);
preloader.percentagemTxt.text = percentagem+"% a
carregar...";
}
private function fim():void
{
removeChild(preloader);
addMenu();
addExtras();
listenersMenu();
}
}
Assim o que acontece é que o preloader nem chega a aparecer. Fazedo
simulate download, vejo a página branca (enquanto está a carregar) e
depois puft! aparecem as secções e o menu. Preloader nada.... Se fizer
um trace à percentagem ele devolve-me imediatamente 100%. Parece-me a
mim que o this (this.loaderInfo.addEventListener) não está bem...
Alguém me ajuda com uma solução simples?
Obrigada.
--~--~---------~--~----~------------~-------~--~----~
Recebeu esta mensagem porque está inscrito em Grupo "Mailing List da Comunidade
Portuguesa de Rich Internet Applications - www.riapt.org" do Grupos Google.
Para enviar mensagens para este grupo, envie um email para
[email protected]
Para anular a inscrição neste grupo, envie um email para
[email protected]
Para mais opções, visite este grupo em
http://groups.google.com/group/riapt?hl=pt-PT
-~----------~----~----~----~------~----~------~--~---