Jump to content
Fórum Script Brasil
  • 0

Help! galeria em flash facilitada + xml (RESOLVIDO)


Question

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á!!!

Edited by Daniela Pereira
Link to post
Share on other sites

3 answers to this question

Recommended Posts

  • 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 :)

Edited by Pooh
Link to post
Share on other 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 to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      149287
    • Total Posts
      645679
×
×
  • Create New...