Posted 26 May 2008 - 03:09 AM
Olá Natan, fiz seu tutorial e eliminei a scrollBar pois preciso apenas de 4 tumbs e usei o esquema de Slideshow que colocou contudo quando o slideshow chega na ultima foto ele fica branco e não retorna para a primeira foto, o que devo fazer para acertar isso. abaixo segue o codigo usado
/* Importamos a Classe Tween */
import mx.transitions.Tween;
import mx.transitions.easing. *;
/* Variável para saber se carregou */
var carregado:Boolean = false;
/* Criamos uma variável para o MovieClipLoader para as fotos maiores */
var meuMCL:MovieClipLoader = new MovieClipLoader();
/* Outra variável para o MovieClipLoader esse é para as fotos menores */
var pequenoMCL:MovieClipLoader = new MovieClipLoader();
/* Criamos um Listener para o MovieClipLoader */
var meuListener:Object = new Object();
/* Slideshow */
var atual:Number = 0;
var intervalo:Number;
btPlay.onPress = function() {
intervalo = setInterval(inicia, 5000);
}
btStop.onPress = function() {
clearInterval(intervalo);
}
function inicia() {
atual++;
carregaImagem(atual, atual);
}
/* Outro Listener */
var pequenoListener:Object = new Object();
/* Criamos uma variável para o XML */
var dadosXML:XML = new XML();
/* Ignoramos os espaços em branco */
dadosXML.ignoreWhite = true;
/* Carregamos o XML */
dadosXML.load("imagen.xml");
/* Quando o XML for carregado */
dadosXML.onLoad = function(ok) {
/* Se não teve erro */
if (ok) {
/* Dizemos qual é o primeiro Nó */
xmlNode = this.firstChild;
/* Criamos uma variável para o total de itens no XML */
total = xmlNode.childNodes.length;
/* Chamamos a função montaPequeno() */
montaPequeno();
/* Chamamos a função carregaImagem chamando a primeira imagem */
carregaImagem(0, 0);
} else {
/* Exibimos uma mensagem de erro caso não carregue o XML */
mensagem.text = "Erro ao Carregar o arquivo XML";
}
};
/* Função monta pequeno */
function montaPequeno() {
/* Variável para posicionar o MovieClip */
var inicio = 0;
/* Criamos um for para cada item do XML */
for (var i = 0; i<total; i++) {
/* Chamamos o MovieClip pequeno */
var mc:MovieClip = recebe.attachMovie("pequeno", "pequeno"+i, recebe.getNextHighestDepth());
/* Pocisionamos ele */
mc._x = inicio*mc._width+inicio*10;
/* Incrementamos inicio */
inicio++;
/* Carregamos a imagem pequena */
pequenoMCL.loadClip(xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue, mc.alvo);
/* Deixamos o MovieClip barra com _yscale igual a 0 */
mc.barra._yscale = 0;
/* Pegamos a imagem */
mc.imagem = i;
/* Pegamos a legenda */
mc.legenda = i;
/* Ao pressionar do da Imagem Pequena */
mc.onPress = function() {
/* Se a variável carregado for igual a true */
if (carregado == true) {
/* Carregamos a Imagem selecionada */
carregaImagem(this.imagem, this.legenda);
/* Carregado igual a falso */
carregado = false;
/* Apagamos o texto */
texto.text = "";
}
};
}
/* Verificamos se o ScrollBar é menor que o MovieClip recebe */
if (recebe._width<=scrollBar._width) {
scrollBar.unloadMovie();
}
}
/* Usamos o Listener para saber o progresso do Carregamento */
pequenoListener.onLoadProgress = function(target_mc, loadedBytes, totalBytes) {
/* Criamos uma variável para saber o quanto carregou */
var carregados:Number = Math.round(loadedBytes/totalBytes*100);
/* Deixamos o MovieClip barra com _yscale igual a variável carregado */
target_mc._parent.barra._yscale = carregados;
};
/* Função para carregar a Imagem grande */
function carregaImagem(arquivo, txt) {
/* Deixamos o MovieClip preloader com _xscale igual a zero */
preloader._xscale = 0;
/* Deixamos o MovieClip preloader visível */
preloader._visible = true;
/* Descarregamos qualquer conteúdo que esteja no MovieClip holder */
holder.unloadMovie();
/* Deixamos o MovieClip holder com alpha igual a zero */
holder._alpha = 0;
/* Carregamos a imagem maior selecionada */
meuMCL.loadClip(xmlNode.childNodes[arquivo].childNodes[0].firstChild.nodeValue, holder);
/* Usamos o Listener para saber o progresso do carregamento */
meuListener.onLoadProgress = function(alvo:Object, bLoad:Number, bTotal:Number) {
/* Criamos uma variável para saber quanto carregou */
var porcentagem:Number = Math.round(bLoad/bTotal*100);
/* Mostramos o quanto carregou */
porcento.text = porcentagem+"%";
/* Deixamos o MovieClip preloader com o mesmo _xscale do carregameto */
preloader._xscale = porcentagem;
};
/* Quando terminar de carregar */
meuListener.onLoadInit = function() {
/* Para usar a Classe Tween temos que criar variáveis */
/* Aqui iremos aumentar o MovieClip borda para o mesmo tamanho do MovieClip holder mais 16
para poder fazer uma borda */
var tww:Tween = new Tween(borda, "_width", Back.easeOut, borda._width, holder._width+16, 1, true);
/* Aqui iremos aumentar o MovieClip borda para o mesmo tamanho do MovieClip holder mais 16
para poder fazer uma borda */
var twh:Tween = new Tween(borda, "_height", Back.easeOut, borda._height, holder._height+16, 1, true);
/* Aqui movemos o MovieClip holder */
var twhx:Tween = new Tween(holder, "_x", Back.easeOut, holder._x, borda._x-holder._width/2, 1, true);
/* Aqui movemos o MovieClip holder */
var twhx:Tween = new Tween(holder, "_y", Back.easeOut, holder._y, borda._y-holder._height/2, 1, true);
/* Movemos o MovieClip mascara */
var twma:Tween = new Tween(mascara, "_y", Back.easeOut, mascara._y, (borda._y+holder._height/2)+16, 1, true);
/* Movemos o MovieClip recebe */
var twr:Tween = new Tween(recebe, "_y", Back.easeOut, recebe._y, (borda._y+holder._height/2)+16, 1, true);
/* Movemos o ScrollBar */
var twsP:Tween = new Tween(scrollBar, "_y", Back.easeOut, scrollBar._y, (borda._y+holder._height/2)+recebe._height+22, 1, true);
/* Movemos o campo de texto */
var twtxt:Tween = new Tween(texto, "_y", Back.easeOut, texto._y, (borda._y+holder._height/2)+recebe._height+47, 1, true);
/* Mostramos o texto */
texto.text = xmlNode.childNodes[txt].childNodes[2].firstChild.nodeValue;
/* Quando a variavel twhx acabar de se mover */
twhx.onMotionFinished = function() {
/* Deixamos o MovieClip preloader invisivel */
preloader._visible = false;
/* Apagamos o texto do campo de texto porcento */
porcento.text = "";
/* Aqui deixamos o MovieClip holder ficar com alpha igual a 100 */
var twha:Tween = new Tween(holder, "_alpha", Regular.easeOut, 0, 100, 0.6, true);
/* Quando a variavel twha acabar */
twha.onMotionFinished = function() {
/* Deixamos a variável carregado igual a true */
carregado = true;
};
};
};
}
/* Adicionamos um Listener ao MovieClipLoader */
meuMCL.addListener(meuListener);
/* Adicionamos um Listener ao MovieClipLoader */
pequenoMCL.addListener(pequenoListener);