Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Carcleo

Tentar até aprender

Recommended Posts

Pessoal.

Boa Tarde.

tenho a classe abaixo para carregar um xml (de tanto observar, cheguei a isso ai):

package  classes
{
import flash.events.*;
import flash.net.*;

public class carregaXML extends EventDispatcher
{
	private var xmlList:XMLList;

	public function carregaXML(pXMLURL:String):void
	{
		// constructor code
		var xmlURLRequest:URLRequest = new URLRequest(pXMLURL);
		var xmlURLLoader :URLLoader  = new URLLoader(xmlURLRequest);

		xmlURLLoader.addEventListener(Event.COMPLETE, xmlData);
	}

       private function xmlData(evt:Event):void
	{
		evt.currentTarget.removeEventListener(Event.COMPLETE, xmlData);

		var xml:XML = new XML(evt.currentTarget.data);

		xmlList=xml.*;
		dispatchEvent(new Event(Event.COMPLETE));
	}
	public function get Lista():XMLList
	{
		return xmlList;
	}
}

}

No meu fla, tenho o seguinte as:

import classes.carregaXML;

var xml:carregaXML = new carregaXML('imagens.xml');

xml.addEventListener(Event.COMPLETE, mostraImagens);

function mostraImagens(evt:Event):void
{
trace(evt.currentTarget.Lista);
trace(evt.currentTarget.Lista.length());


}

Isso me retorna o xml como ele é:

<imagens>
 <endereco>"../../img/treinamento/treinamento_Page_01.jpg"</endereco>
 <endereco>"../../img/treinamento/treinamento_Page_02.jpg"</endereco>
 <endereco>"../../img/treinamento/treinamento_Page_03.jpg"</endereco>
</imagens>

E o numeros de tags<endereco> que ele tem em trace.

 

O que eu quero agora é adicionar essas imagens ao palco e colocar um preloader para o carregamento de cada uma.

 

Preciso de ideias de como fazer.

 

Obriago e desculpe a falta de conhecimento.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Consegui do jeito abaixo exibir no MC as imagens em sequencia de uma pasta via xml.

 

Agora, gostaria de saber como alterar o tamanho dessas imagens antes de lançar no palco. Elas estão pequenas..

 

stop();

voltar.addEventListener(MouseEvent.CLICK, volta);

CarregaScroll(scrollbar4,scrollbar4.barra_scroll4,scrollbar4.scroller4,imagesContainer,mascara4);

import classes.ImagemLoader;

import flash.net.URLLoader;
import flash.net.URLRequest;
import flash.events.Event;
import flash.display.Loader;
import flash.display.Sprite;

var totalBytes:Number = 0; //valor dos bytes total de TODAS as imagens
var loadedBytes:Number = 0; //valor actual dos bytes carregados de TODAS as imagens
var prevLoadedBytes:Number = 0; //ira servir para determinar o valor de loadedBytes
var loaderCounter:Number = 0;  //referencia para determinar o valor de totalBytes

var imagesData:XML;
var imgCounter:int = 0;
var loader:URLLoader = new URLLoader();
/*var imagesContainer:MovieClip = new MovieClip();


imagesContainer.x=320;
imagesContainer.y=10;
imagesContainer.width=620;
imagesContainer.height=300;*/

loader.addEventListener(Event.COMPLETE, dataLoadedHandler);
loader.load(new URLRequest("treinamento.xml"));

imagesContainer.visible = false;


function dataLoadedHandler(e:Event):void {

       imagesData = new XML(e.target.data);

       var imageLoader:Loader;

       totalpaginas.text="Este treinamento possui "+imagesData.img.length()+" Páginas.";
       aguarde.text="Por favor, aguarde o carregamento de todas elas!";

       for(var i:uint; i < imagesData.img.length(); i++)
       {
               imageLoader = new Loader();
               imagesContainer.addChild(imageLoader);
               imageLoader.contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, carregando);
               imageLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, imageLoaded);
               imageLoader.load(new URLRequest(imagesData.img[i].@path));
       }
}


function carregando(evt:ProgressEvent):void {

       loaderCounter++;

       if(loaderCounter <= imagesData.img.length()) {
               totalBytes += evt.bytesTotal;
               return;
       }

       loadedBytes += (evt.bytesLoaded - prevLoadedBytes);

       if(evt.bytesLoaded == evt.bytesTotal) prevLoadedBytes = 0;
       else prevLoadedBytes = evt.bytesLoaded;

       var perc:Number = loadedBytes / totalBytes;
       barra_treina.scaleX=perc;
       percentual.text=Math.floor(perc*100)+"%";
}
function imageLoaded(e:Event):void {

       imgCounter++;

       if(imgCounter == imagesData.img.length()) {             

               for( var i:uint; i < imagesData.img.length(); i++) {

                       if(i > 0){

                               imagesContainer.getChildAt(i).y = imagesContainer.getChildAt(i-1).y + imagesContainer.getChildAt(i-1).height;
                       }
               }


               imagesContainer.visible = true;
               totalpaginas.visible=false;
               aguarde.visible=false;
               percentual.visible=false;
               barra_treina.visible=false;
			fundo_barra.visible=false;
       }
}

Ah! a classe tambem mudou.

package classes
{
import flash.display.*;
import flash.events.*;
import flash.net.*;

public class ImagemLoader extends Sprite
{
  private var imgLoader:Loader;

  public function ImagemLoader(pImgURL:String):void
  {
    var imgReq:URLRequest = new URLRequest(pImgURL);
    imgLoader = new Loader();
    imgLoader.load(imgReq);

    imgLoader.contentLoaderInfo.addEventListener(Event.COMPLETE, adicionaImagem);
  }

  private function adicionaImagem(evt:Event):void
  {
    addChild(imgLoader);
    evt.currentTarget.removeEventListener(Event.COMPLETE, adicionaImagem);
    dispatchEvent(new Event(Event.COMPLETE));
  }
}
}

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.