Ir para conteúdo

POWERED BY:

Arquivado

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

augcosta777

[Resolvido] problemas com loadmovie e xml

Recommended Posts

Estou com um problema ao tentar carregar via loadmovie um swf q ue contem uma galeria de imagens. O que acontece é que a galeria utiliza um arquivo XML para carregar as imagens. Quando testo a galeria, da tudo certo. Porém quando a carrego dentro do site as imagens não aparecem.

Tenho tres arquivos: principal.swf, galeria.swf e fotos.xml. o problema é que a galeria não funciona quando a carrego via loadmovie para dentro do principal.swf

Compartilhar este post


Link para o post
Compartilhar em outros sites

Caso seja AS2, no seu filme "galeria.swf" insira para os objetos o caminho completo, ex:

_root.loaderswf.instanceMc1 etc...

Abs.

 

não entendi mto bem.... posso postar or arquivos para você dar uma olhada?

Compartilhar este post


Link para o post
Compartilhar em outros sites

o codigo do arquivo galeria.swf:

 

//variaveis da sequencia...
var fotos:Array = new Array;
//função de inicio do projeto...
function init():Void {
	//carregando xml...
	var loadDados:XML = new XML();
	loadDados.ignoreWhite = true;
	loadDados.onLoad = function(sucess) {
		if (sucess) {
			//primeiro nó: fotos;
			var f = this.firstChild.childNodes;
			//listando conteúdo do nó e inserindo no array de fotos
			for (var i = 0; i<f.length; i++) {
				var novaimg:Object = new Object(); //criando o objeto de cada foto
				novaimg.img_p = f[i].attributes.fp;
				novaimg.img_g = f[i].attributes.fg;
				fotos.push(novaimg); //inserindo objeto no array
			}
			//chamando função q faz a galeria...
			criaGaleria();
		}
	};
	//load no arquivo .xml
			   loadDados.load("fotos.xml");
}
//função que cria a galeria
function criaGaleria():Void {
	car._visible = 0;
	//preloader de imagens grande, usando MovieClipLoader...
	//fica livre para usar como quiser...
	var mvlIMG:MovieClipLoader = new MovieClipLoader();
	var mvlOBJ:Object = new Object();
	mvlOBJ.onLoadStart = function(){
		car._visible = 1;
	}
	mvlOBJ.onLoadProgress = function(obj, bl, bt){
		var p = (Math.round(bl/bt) * 100) //porcentagem carregada da imagem
		car.p.text = "Carregando... " + p + "%";
	}
	mvlOBJ.onLoadComplete = function(){
		car._visible = 0;
	}
	mvlIMG.addListener(mvlOBJ);
	//
	//criando sistema de galeria(quantidade de fotos, fotos por pagina, colunas, altura miniatura, largura, espacamento x, e y);
	_global.galeria1 = new Distribute(fotos.length, 8, 2, 80, 60, 4, 3);
	//
	var objGal1:Object = new Object();
	objGal1.onDistStart = function() {
		//ação de inicio da distribuição das fotos...
		//verifica se o mc já está no palco, caso esteja, remove para nova página...
		if(_root.miniaturas){
			//removendo miniaturas anteriores na troca de pagina...
			_root.miniaturas.removeMovieClip();
		}
		//duplicando o mc conteiner q vai conter as miniaturas, para um novo que poder ser removido...
		_root.conteinerInicial.duplicateMovieClip("miniaturas", 1);
		//definindo onde o mcConteiner deve aparecer...
		miniaturas._x = conteinerInicial._x; // _x
		miniaturas._y = conteinerInicial._y; // _y
		//escondendo...
		miniaturas._visible = 0;
	};
	//
	objGal1.onDistUpdate = function(info:Object) {
		//puxando da bliblioteca o mc com linkage miniatura, e ja posicionando de arquivo com o _x e _y passados pelo var info...
		_root.miniaturas.attachMovie("miniatura", "fp_"+info.iObj, galeria1.nDepth(_root.miniaturas), {_x:info.x, _y:info.y});
		//informando ou passando, para miniatura, qual é sua foto grande...
		_root.miniaturas["fp_"+info.iObj].img_g = fotos[info.index].img_g;
		//criando o movie clip alvo para receber a img pequena, dentro do mc Conteiner...
		_root.miniaturas["fp_"+info.iObj].createEmptyMovieClip("img_p", 1);
		//carregando thumb via loadMovie...
		_root.miniaturas["fp_"+info.iObj].img_p.loadMovie(fotos[info.index].img_p);
		//definindo ação de clique na miniatura, para ampliar...
		_root.miniaturas["fp_"+info.iObj].onRelease = function(){
			//usando o obj mvlIMG, para carregar a imagem grande...
			mvlIMG.loadClip(this.img_g, img_grande);
		}
	};
	objGal1.onDistEnd = function(info:Object) {
		//ação de distribuição completa, exibindo mc Conteiner, chamado de miniaturas...
		miniaturas._visible = 1;
	};
	//definindo ao objeto galeria1, os objetos e eventos que deve utilizar...
	galeria1.addEventListener("onDistStart", objGal1);
	galeria1.addEventListener("onDistUpdate", objGal1);
	galeria1.addEventListener("onDistEnd", objGal1);
	//
	//montando paginação, pegase o nº de paginas e faz o paginador...
	//função responsável pelo click dos bts da paginação...
	function setPg(obj){
		//restaurando todos bts, para o primeiro frame...
		for (i=0; i<galeria1.nPages; i++) {
			var mcPgAtual = this._parent["mcPg_" add i];
			if(mcPgAtual != this) mcPgAtual.gotoAndStop(1); //todos voltam menos o atual...
		}
		//definindo o frame q deve mostrar...
		this.lastFrame = 3;
		//mostrando página solicitada...
		var iAtual:Number = int(this.pg.text);
		galeria1.showPage(iAtual);
	}
	for (i=0; i<galeria1.nPages; i++) {
		//ataxando ao mc vazio, paginacao, os bts de página...
		var mcPgAtual = paginacao.attachMovie("mcPg", "mcPg_" add i, i);
		mcPgAtual._x = (i*(mcPgAtual._width+3)); //posicionando bt no mc...
		mcPgAtual.pg.text = (i+1); //setando no bt, a pg dele...
		//definindo eventos e ações paga o bt da página...
		mcPgAtual.onRollOver = function(){
			//pega o frame atual e armazena, caso o bt seja o bt de página clicada...
			this.lastFrame = this._currentframe;
			//ao passar porcima acende
			this.gotoAndStop(2);
		}
		mcPgAtual.onRollOut = function(){
			this.gotoAndStop(this.lastFrame);
		}
		mcPgAtual.onRelease = setPg;
	}
	//
	//mostrando pagina 1 e setando o botão de pg 1...
	paginacao["mcPg_0"].gotoAndStop(3);
	galeria1.showPage(1);
}
//
//iniciando por fim, a galeria...
init();

Compartilhar este post


Link para o post
Compartilhar em outros sites

Então, o seu filme "galeria.swf" em separada funciona. Correto? E quando você faz o loadMovie, deixa de funcionar, pense na lógica da coisa:

Quando você executa galeria.swf em separado ela é "_root", mas quando você faz o loadMovie, "_root" passa a ser o filme principal - O que fazer para funcionar. Você tem que especificar no cód que os caminhos foram alterados, por ex: No seu filme principal você faz o loadMovie em um mc instanciado como "alvo", então os caminhos do cod. galeria.swf devem apontar para um novo caminho, ex:

Onde:

_root.conteinerInicial.duplicateMovieClip("miniaturas", 1);
Deverá ser:

_root.alvo.conteinerInicial.duplicateMovieClip("miniaturas", 1);
E para todos os outros caminhos que façam referência à "_root".

 

Espero que tenha entendido.

Abs.

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.