Carcleo 4 Denunciar post Postado Março 11, 2012 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
Carcleo 4 Denunciar post Postado Março 11, 2012 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