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
-~----------~----~----~----~------~----~------~--~---

Responder a