Obrigada Nuno.
Simples e muito eficaz :)

On 17 Nov, 09:54, Nuno Rosa <[email protected]> wrote:
> Assim que o swf carregado (ou o loader que o contem) esteja colocado na
> display list tens acesso ao stage.
> Podes estar a tentar aceder antes desse momento, se escutares o evento
> Event.ADDED_TO_STAGE (>9.0.128) podes ter a certeza que tens acesso ao
> stage.
>
> Na aplicação* Main.as*
>
> public function Main()
> {
>    if(stage)
>       initialize();
>    else
>       addEventListener(Event.ADDED_TO_STAGE, initialize);
>
> }
>
> public function initialize(e:Event = null):void
> {
>     // A partir daqui tens acesso ao stage.
>
> }
>
> 2009/11/17 Catarina <[email protected]>
>
>
>
>
>
> > 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.- Ocultar texto citado -
>
> - Mostrar texto citado -
--~--~---------~--~----~------------~-------~--~----~
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