..:: MX Studio Fóruns ::..: Classe para carregar arquivos externos - ..:: MX Studio Fóruns ::..

Jump to content

Publicidade




ATENÇÃO

Para evitar posts desnecessários e que não influam para o andamento e desenvolvimento do fórum, clique aqui e leia todas as regras.
Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic

Classe para carregar arquivos externos

#1 User is offline   lucasmarcal 

  • Group: Membros
  • Posts: 309
  • Joined: 06-May 04

Posted 09 February 2009 - 07:05 PM

Salve pessoal,

Como disse em meu outro tópico, estou me adaptando ao AS3 agora, e como toda adaptação estou tendo alguns problemas que eu sei que são por falta de experiência, então nada melhor do que compartilhar isso no forum com pessoas que ja tem essa experiência.

o Caso é o seguinte, fiz uma classe de teste que é o projeto "Alpha" de uma classe que vai servir como padrão para carregamento de arquivos, ela tem pouco metodos mesmo porque, estou iniciando ela agora, o grande problema é que depois de carregar o arquivo ela não mostra no Stage, mesmo eu tendo adicionado a variavel com addChild(), segue o código.

Classe LoadFile.as

CÓDIGO
package com.lucasmarcal.displayloader
{
    
    /**
     * @version: 1.0 Alpha
     */
    import flash.display.Loader;
        import flash.display.Sprite;
    import flash.net.URLRequest;
        import flash.events.*;
    
    public class LoadFile extends Sprite
    {
        var l:Loader =  new Loader()
        var perc:Number;
        var container:Sprite =  new Sprite()
        
        public function LoadFile()
        {
            trace("iniciou classe de carregamento")
            initLoadFile()
        }
        
        public function initLoadFile():void
        {
            l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop)
            l.contentLoaderInfo.addEventListener(Event.COMPLETE, done)
            l.load(new URLRequest("conteudo.swf"))
        }
        
        public function loop(e:ProgressEvent):void
        {
            perc =  e.bytesLoaded / e.bytesTotal
            trace(Math.ceil(perc * 100).toString() + "%")
        }
        
        public function done(e:Event):void
        {
            container.addChild(l)
        }
        
    }
    
}


Código no arquivo fla

CÓDIGO
import com.lucasmarcal.displayloader.LoadFile
var lod:LoadFile =  new LoadFile()


Se alguém puder me ajudar eu agradeço.

Abraços!
0

#2 User is offline   Natan 

  • Group: Moderador Global
  • Posts: 7350
  • Joined: 28-February 04

Posted 09 February 2009 - 09:16 PM

Olhando seu código, não achei a linha que adiciona o container ao palco. Veja se assim vai:

CÓDIGO
package com.lucasmarcal.displayloader
{
    
    /**
     * @version: 1.0 Alpha
     */
    import flash.display.Loader;
        import flash.display.Sprite;
    import flash.net.URLRequest;
        import flash.events.*;
    
    public class LoadFile extends Sprite
    {
        var l:Loader =  new Loader()
        var perc:Number;
        var container:Sprite =  new Sprite();
        addChild(container);
        
        public function LoadFile()
        {
            trace("iniciou classe de carregamento")
            initLoadFile()
        }
        
        public function initLoadFile():void
        {
            l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop)
            l.contentLoaderInfo.addEventListener(Event.COMPLETE, done)
            l.load(new URLRequest("conteudo.swf"))
        }
        
        public function loop(e:ProgressEvent):void
        {
            perc =  e.bytesLoaded / e.bytesTotal
            trace(Math.ceil(perc * 100).toString() + "%")
        }
        
        public function done(e:Event):void
        {
            container.addChild(l)
        }
        
    }
    
}


[]s
0

#3 User is offline   lucasmarcal 

  • Group: Membros
  • Posts: 309
  • Joined: 06-May 04

Posted 10 February 2009 - 08:54 AM

QUOTE(Natan @ 9/2/2009 20:02:17) <{POST_SNAPBACK}>
Olhando seu código, não achei a linha que adiciona o container ao palco. Veja se assim vai:

CÓDIGO
package com.lucasmarcal.displayloader
{
    
    /**
     * @version: 1.0 Alpha
     */
    import flash.display.Loader;
        import flash.display.Sprite;
    import flash.net.URLRequest;
        import flash.events.*;
    
    public class LoadFile extends Sprite
    {
        var l:Loader =  new Loader()
        var perc:Number;
        var container:Sprite =  new Sprite();
        addChild(container);
        
        public function LoadFile()
        {
            trace("iniciou classe de carregamento")
            initLoadFile()
        }
        
        public function initLoadFile():void
        {
            l.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, loop)
            l.contentLoaderInfo.addEventListener(Event.COMPLETE, done)
            l.load(new URLRequest("conteudo.swf"))
        }
        
        public function loop(e:ProgressEvent):void
        {
            perc =  e.bytesLoaded / e.bytesTotal
            trace(Math.ceil(perc * 100).toString() + "%")
        }
        
        public function done(e:Event):void
        {
            container.addChild(l)
        }
        
    }
    
}


[]s


Salve Natan, o erro continua mesmo coisa :S
e o pior é que esse mesmo codigo direto na timeline (salvo as devidas alterações de estrutura não OOP) funciona normalmente:S

Vlw brother !
0

#4 User is offline   lucasmarcal 

  • Group: Membros
  • Posts: 309
  • Joined: 06-May 04

Posted 10 February 2009 - 03:08 PM

Salve pessoal

Agradeço a todos que me ajudaram, segue abaixo a classe pronta, quem sabe alguém precisa!
abraços

LoadFile.as
CÓDIGO
package com.utils.displayloader
{
    import flash.display.Loader;
    import flash.display.Sprite;
    import flash.events.*
    import flash.net.URLRequest;
    import flash.text.TextField;
    
    /**
     * ...
     * @author: Lucas Marçal
     * @version: 1.1 beta
     * @since: 10/02/2009
     * @link: http://labs.lucasmarcal.com.br/
     * @usage:
     *  import com.utils.displayloader.LoadFile
     *    addChild(txtPct)
     *    var lod:LoadFile =  new LoadFile("conteudo.swf",txtPct)
     *    this.addChild(lod);
     */
    public class LoadFile extends Sprite
    {
        public var l:Loader =  new Loader();
        public var pct:Number;
        public var txtPorcentagem:TextField;
        
        /**
         *
         * @param    _url
         * @param    _txtPct
         */
        public function LoadFile(_url:String,_txtPct:TextField):void
        {
            trace("Iniciou a classe " + _url)
            createListners(l.contentLoaderInfo)
            var urlPath:URLRequest = new URLRequest(_url);
            l.load(urlPath)
            txtPorcentagem = _txtPct
            addChild(l)
        }
        /**
         *
         * @param    _eventDispach
         */
        public function createListners(_eventDispach:IEventDispatcher):void
        {
            _eventDispach.addEventListener(Event.COMPLETE, loadFull);
            _eventDispach.addEventListener(Event.OPEN, initLoad);
            _eventDispach.addEventListener(ProgressEvent.PROGRESS, inLoad);
            _eventDispach.addEventListener(IOErrorEvent.IO_ERROR, failedLoad);
        }
        /**
         *
         * @param    e
         */
        public function failedLoad(e:IOErrorEvent):void
        {
            trace("Erro ao carregar arquivo")
            txtPorcentagem.text = "Erro ao carrega arquivo"
        }
        /**
         *
         * @param    e
         */
        public function inLoad(e:ProgressEvent):void
        {
            trace("Carregando arquivo ")
            pct =  e.bytesLoaded / e.bytesTotal;
            txtPorcentagem.text = Math.ceil(pct * 100).toString() + "%"
            addChild(txtPorcentagem)
        }
        /**
         *
         * @param    e
         */
        public function initLoad(e:Event):void
        {
            trace("Iniciou Carregamento de arquivo")
            txtPorcentagem.text = "Carregando"
        }
        /**
         *
         * @param    e
         */
        public function loadFull(e:Event):void
        {
            trace("Terminou Carregamento de Arquivo")
            txtPorcentagem.text = ""
            pct = undefined
        }
        
    }
    
}


Exmplo.fla
CÓDIGO
import com.utils.displayloader.LoadFile
addChild(txtPct)
var lod:LoadFile =  new LoadFile("conteudo.swf",txtPct)
this.addChild(lod);


Abraço a todos
0

Share this topic:


Page 1 of 1
  • You cannot start a new topic
  • You cannot reply to this topic



Publicidade




2 User(s) are reading this topic
0 membro(s), 2 visitante(s) e 0 membros anônimo(s)