Ir para conteúdo
Fórum Script Brasil
  • 0

Help! galeria em flash facilitada + xml (RESOLVIDO)


Daniela Pereira

Pergunta

Oi Gente,

Sou nova aqui e estou precisando de uma ajudinha. :unsure:

Baixei uma galeria pronta e estou tentando reformular ela.

Só que a primeira imagem não aparece de pronto, apenas quando clico na primeira imagem.

Gostaria de saber qual código tenho que inserir nela para a primeira imagem aparecer logo 'de cara'.

Vou colocar os códigos para darem uma analisada:

Action:

//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 já 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();

--------------------------------------------------------------------------------------------

Distribute:

import mx.events.EventDispatcher;

dynamic class Distribute {

var _nObjs:Number, _npp:Number, _cols:Number;

var __width:Number, __height:Number, _spacex:Number, _spacey:Number;

function Distribute(n:Number,npp:Number,cols:Number,w:Number,h:Number,sx:Number,sy:Number)

{

_nObjs = n;

__width = w;

__height = h;

_spacex = sx;

_spacey = sy;

_npp = npp;

_cols = cols;

//iniciando dispachador de eventos...

EventDispatcher.initialize(this);

}

public function nDepth(alvo:Object):Number

{

return alvo.getNextHighestDepth();

}

public function get nPages():Number

{

return Math.ceil(_nObjs / _npp);

}

public function showPage(pgAtual:Number):Void

{

var objGal = this;

var _iCount = (pgAtual-1) * _npp;

var _iColumm = 0;

var _iLine = 0;

var _xAtual:Number = 0;

var _yAtual:Number = 0;

//evento inicio de pagina...

var listStartGalDist:Object = {type:"onDistStart", pg: pgAtual};

objGal.dispatchEvent(listStartGalDist);

//loop dos objetos...

for(var i:Number = 1; i<=_npp; i++){

if(_iCount >= _nObjs) break;

//calculo de x e y...

if(_iColumm == 0){

_xAtual = 0;

} else if(_iColumm < _cols) {

_xAtual += (_spacex + __width);

} else {

_iLine++;

_xAtual = 0;

_yAtual = (_spacey + __height) * _iLine;

_iColumm = 0;

}

//dispachando eventos onGalDist...

var listGalDist:Object = {type:"onDistUpdate", index: _iCount, iObj: i, x: _xAtual, y: _yAtual};

objGal.dispatchEvent(listGalDist);

//somando ao i de index...

_iColumm++;

_iCount++;

}

//evento termino de pagina...

var listEndGalDist:Object = {type:"onDistEnd", pg: pgAtual};

objGal.dispatchEvent(listEndGalDist);

}

}

--------------------------------------------------------------------------------------------

XML:

<?xml version="1.0" encoding="UTF-8" ?>

- <fotos>

<foto fp="imgs/foto1p.jpg" fg="imgs/foto1g.jpg" />

<foto fp="imgs/foto2p.jpg" fg="imgs/foto2g.jpg" />

<foto fp="imgs/foto3p.jpg" fg="imgs/foto3g.jpg" />

<foto fp="imgs/foto4p.jpg" fg="imgs/foto4g.jpg" />

<foto fp="imgs/foto5p.jpg" fg="imgs/foto5g.jpg" />

<foto fp="imgs/foto6p.jpg" fg="imgs/foto6g.jpg" />

<foto fp="imgs/foto7p.jpg" fg="imgs/foto7g.jpg" />

<foto fp="imgs/foto8p.jpg" fg="imgs/foto8g.jpg" />

<foto fp="imgs/foto9p.jpg" fg="imgs/foto9g.jpg" />

<foto fp="imgs/foto10p.jpg" fg="imgs/foto10g.jpg" />

<foto fp="imgs/foto11p.jpg" fg="imgs/foto11g.jpg" />

<foto fp="imgs/foto12p.jpg" fg="imgs/foto12g.jpg" />

</fotos>

--------------------------------------------------------------------------------------------

Aguardo gente...

obrigada desde já!!!

Editado por Daniela Pereira
Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0

Olá Daniela ^_^

Bom não cheguei a olhar muita coisa, o que é necessário somente é achar aonde lee carrega o movie com a imagem desejada;

já se tratanod de uma galera com miniaturas e fotos grandes, imagina-se que quando se clika em uma miniatura aconteça a mágica então procurei por isso e achei algo assim :

//usando o obj mvlIMG, para carregar a imagem grande...
mvlIMG.loadClip(this.img_g, img_grande);
}
A função mvlIMG.loadClip(this.img_g, img_grande); é quem carrega suas fotos grandes através do parâmetro "this.img_g" que no seu caso é o caminho da imagem;
_root.miniaturas["fp_"+info.iObj].img_g = fotos[info.index].img_g;
Aqui foi definido nossa "this.img_g" que é igual a fotos[numero da miniatura].img_g, Fotos é uma array que guardou todos os caminhos das fotos que você colocou no xml, por exemplo fotos[0].img_g = "imgs/foto1g.jpg" é isso que ele chama; Resumindo na teoria para carregar logo de cara sua foto você tem de chamar a função "mvlIMG.loadClip" com os seguintes parâmetros:
mvlIMG.loadClip(fotos[0].img_g,img_grande);
O que chamaria a primeira foto grande; já aonde você vai colocar esse comando, achei bem viável ele ser colocado no evento "objGal1.onDistEnd" pois é o Marco de que ele acabou de distribuir todas as fotos em deus devidos lugares :)
objGal1.onDistEnd = function(info:Object) {
//ação de distribuição completa, exibindo mc Conteiner, chamado de miniaturas...
miniaturas._visible = 1;
};
Com a nossa função agora ficaria:
objGal1.onDistEnd = function(info:Object) {
//ação de distribuição completa, exibindo mc Conteiner, chamado de miniaturas...
miniaturas._visible = 1;
mvlIMG.loadClip(fotos[0].img_g,img_grande);
};

Bom imagino que seja esse seu problema, caso não resolva me passe os arquivos fontes

que tentarei de uma forma mais adequada lhe auxiliar

Abraços

Pooh :)

Editado por Pooh
Link para o comentário
Compartilhar em outros sites

  • 0
Oi Daniela, td bem

Estou a procura de uma galeria de imagens, você poderia me fornecer o link onde você pegou esse modelo.

Desde já agradeço.

Oi gente...

Obrigada... eu consegui usando um outro método... depois posto aki pra vocês verem.

Baixei essa galeria desse cara:

http://imasters.uol.com.br/artigo/3495/act...os_facillitada/

Valeu!!! ;)

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152k
    • Posts
      651,7k
×
×
  • Criar Novo...