Publiquei os testes, vejam para entender melhor:
http://www.propagare.net/tip8 entrem na pagina Portfolio
Meu problema: quando clico na seta de avançar, as fotos são exibidas mas não ficam exatamente na mesma posição que estavam no começo, o que deixa meu layout feio.
Meus códigos:
import caurina.transitions.Tweener;
//Primeiro Movie-Clip de Fotos
// largura da máscara, ou seja, área de visualização:
var areaVisual:Number = mask_mc._width;
// Vamos guardar a posição inicial do nosso clip para uso futuro:
var posicaoInicial:Number = tudo_mc._x;
var numDeslocamento:Number = tudo_mc._width / areaVisual;
if (numDeslocamento.toString().indexOf(".") > -1) numDeslocamento++;
var listaDePosicoes:Array = new Array();
for (var i:Number = 0; i < numDeslocamento; i++) {
listaDePosicoes.push(Math.round(posicaoInicial - (areaVisual * i)));
}
var indiceFluxo:Number = 0;
avancar_mc.onRelease = function():Void {
if (indiceFluxo >= (numDeslocamento -4)) {
// Se estava na penúltima vez e foi para o último deslocamento, desabilitar este botão.
this.enabled = false;
var cor:Color = new Color (avancar_mc);
cor.setRGB(0xF4EEDD);
}
// habilito o botão voltar..
voltar_mc.enabled = true;
var cor:Color = new Color (voltar_mc);
cor.setRGB(0xFF8200);
indiceFluxo++;
doTween();
}
voltar_mc.onRelease = function():Void {
if (indiceFluxo <= 1) {
// Se estava na penúltima vez e foi para o deslocamento 0, desabilitar este botão.
this.enabled = false;
var cor:Color = new Color (voltar_mc);
cor.setRGB(0xF4EEDD);
}
// habilito o botão avançar..
avancar_mc.enabled = true;
var cor:Color = new Color (avancar_mc);
cor.setRGB(0xff8200);
indiceFluxo--;
doTween();
}
voltar_mc.enabled = false;
var cor:Color = new Color (voltar_mc);
cor.setRGB(0xF4EEDD);
function doTween():Void {
// finalmente a nossa função que vai movimentar o clip:
var tempo:Number = 1;
var modo:String = "easeInBounce"; // tente também "easeInQuad", "easeOutBounce", "easeInBounce" e outros modos de transição da classe Tweener. Have fun!;->
var xAlvo:Number = listaDePosicoes[indiceFluxo];
Tweener.addTween(tudo_mc, {_x:xAlvo, time:tempo, transitions:modo});
}Este é o código da timeline principal.
E este, abaixo, é o do movie-clip que busca as fotos do xml:
System.useCodepage = true;
//include "lmc_tween.as"
// criando o objeto XML
var meuXML:XML = new XML();
// ignorando os espaços em branco
meuXML.ignoreWhite = true;
// quando o XML carregar
meuXML.onLoad = function():Void {
// variável que retorna a altura de todos os thumbs juntos
_global.altura = (thumb._height*meuXML.childNodes[0].childNodes.length+meuXML.childNodes[0].childNodes.length*2);
// criando um loop for
for (i=0; i<meuXML.childNodes[0].childNodes.length; i++) {
// duplicando o movieclip thumb
duplicateMovieClip("thumb", "thumb"+i, i+1);
thumbs = _root.tudo_mc["thumb"+i];
// posição de cada thumb
thumbs._x += (thumb._height+3)*i;
// criando uma instância da classe MovieClipLoader
var MCL1:MovieClipLoader = new MovieClipLoader();
// carregando um arquivo no objeto MCL1, de acordo com o primeiro nó do XML, o nó filho atual (i) do atributo thumb, movieclip alvo: thumbs.mostra
MCL1.loadClip(meuXML.childNodes[0].childNodes[i].attributes.thumb, thumbs.aumentar.mostra);
thumbs.onEnterFrame = function():Void {
// variável que checa o progresso do objeto MCL1
progresso1 = MCL1.getProgress(this.aumentar.mostra);
// texto do campo pct_thumb: bytes carregados / bytes totais * 100 + o sinal de porcentagem
this.pct_thumb.text = Math.ceil(progresso1.bytesLoaded/progresso1.bytesTotal*100)+"%";
// se os bytes carregados forem iguais ao bytes totais, deixa o campo de texto invisível, se não, ele continua visível
progresso1.bytesLoaded == progresso1.bytesTotal ? this.pct_thumb._visible=false : this.pct_thumb._visible=true;
};
// variável de referência, que indica o nó atual
thumbs.atual = i;
thumbs.campo.text = i+1;
thumbs.imagemGrande = this.childNodes[0].childNodes[i].attributes.imagemGrande;
thumbs.titulo = this.childNodes[0].childNodes[i].attributes.titulo;
thumbs.descricao = this.childNodes[0].childNodes[i].attributes.descricao;
// retirando a mãozinha do mouse
thumbs.btn.useHandCursor = true;
// quando clicar no movieclip
thumbs.btn.onRelease = function():Void {
// abre link
//getURL(""+meuXML.childNodes[0].childNodes[this._parent.atual].attributes.imagemGrande, "_blank");
// mesma lógica do MCL1
this.onEnterFrame = function():Void {
progresso2 = MCL2.getProgress(_root.mc);
_root.pct.text = Math.round(progresso2.bytesLoaded/progresso2.bytesTotal*100)+"%";
progresso2.bytesLoaded == progresso2.bytesTotal ? _root.pct._visible=false : _root.pct._visible=true;
};
// definindo o texto do campo de texto descrição, de acordo com o nó atual do atributo desc
};
// quando passar o mouse
thumbs.btn.onRollOver = function():Void {
// pequena mudança de contraste
_root.tudo_mc["thumb"+this._parent.atual].aumentar.gotoAndPlay(2);
_root.tudo_mc["thumb"+this._parent.atual].swapDepths(getNextHighestDepth());
};
// quando tirar o mouse
thumbs.btn.onRollOut = function():Void {
// voltando ao normal
_root.tudo_mc["thumb"+this._parent.atual].aumentar.gotoAndPlay(6);
};
thumbs.btn.onPress = function():Void {
// Quando Clicar na imagem
_global.descricao = _root.tudo_mc["thumb"+this._parent.atual].descricao;
_global.TituloFoto = _root.tudo_mc["thumb"+this._parent.atual].titulo;
_global.imagemGrande = _root.tudo_mc["thumb"+this._parent.atual].imagemGrande;
_root.popup.gotoAndPlay(2);
};
}
};
// carregando o arquivo XML
meuXML.load("galeria01.xml");
System.useCodepage = true;Se alguém puder me ajudar ficaria mto grata mesmo
Abraços










