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

Manter Imagem Carregada Antes De Carregar A Outra


rogernem

Pergunta

Tenho um xml fazendo referências a 5 imagens e um flash que carrega uma a uma em uma espécie de slideshow (galeria de imagens automática)

O problema que estou tendo é que quando vai carregar a próxima imagem, a anterior "some" ficando um fundo em branco até aparecer a imagem seguinte carregada.

Sei que posso colocar um loading para não ficar totalmente em branco porém quero que a imagem que já foi carregada continue no movieclip e que quando a próxima carregar ai sim essa imagem pode fazer um fade in.

Segue o codigo de Actionscript:

delay = 5000;
// -----------------------
function loadXML(loaded) {
    if (loaded) {
        xmlNode = this.firstChild;
        image = [];
        description = [];
        total = xmlNode.childNodes.length;
        for (i=0; i<total; i++) {
            image[i] = xmlNode.childNodes[i].childNodes[0].firstChild.nodeValue;
            description[i] = xmlNode.childNodes[i].childNodes[1].firstChild.nodeValue;
        }
        firstImage();
    } else {
        content = "file not loaded!";
    }
}
xmlData = new XML();
xmlData.ignoreWhite = true;
xmlData.onLoad = loadXML;
xmlData.load("images_local.xml");
p = 0;
s = 0;

this.onEnterFrame = function() {
    filesize[s] = picture.getBytesTotal();
    loaded[s] = picture.getBytesLoaded();
    
    preloader._visible = true;
    
    if (loaded[s] != filesize[s]) {
       preloader.preload_bar._xscale = 100*loaded[s]/filesize[s];
    } else {
        
        preloader._visible = false;
        if (picture._alpha<100) {
            picture._alpha += 10;
            s++;
        }
        
    }
};

function firstImage() {
    if (loaded[s] == filesize[s]) {

        picture._alpha = 0;
        picture.loadMovie(image[0], 1);
        slideshow();
    }
}

function nextImage() {
    if (p<(total-1)) {
        p++;
        if (loaded[s] == filesize[s]) {
            
            picture._alpha = 0;
            picture.loadMovie(image[p], 1);
            slideshow();
        }
    }
}

function slideshow() {
    myInterval = setInterval(pause_slideshow, delay);
    function pause_slideshow() {
        clearInterval(myInterval);
        if (p == (total-1)) {
            p = 0;
            firstImage();
        } else {
            
            nextImage();
        }
    }
}

Alguma ideia?

OSB: picture é o nome do meu movieclip que contem as imagens

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

Acontece que quanto você pede para mostrar a próx imagem a atual some e então aparece o carregador para depois de 100% aparecer a prox imagem isso?

"p" seria o ponteiro para a imagem que está sendo exibida no momento (primeira) e "s" a prox imagem a aparecer (segunda) correto?

Talvez, ao invéz de criar uma função de controle para segurar a primeira imagem antes de mostrar a próx seria interessante você criar um segundo mov, "nextPicture" por exemplo, e fazer a nova imagem ser carregada nela. Aí a atual é mantida pois ela não será mexida e esse novo mov estará por cima da atual - fazendo com que quando carregada essa dê um fade sobre a atual.

Se for adotar essa idéia então ao carregar a nova imagem no mov basta fazer uma troca - passar a img carregada para o "picture" e dar um nextPicture._alpha = 0; - assim quando for passar pra prox acontece a mesmo coisa, a img é carregada em "nextPicture" e essa fica sempre servindo de "cortina" para as novas imagens que serão carregadas por cima da imagem atual (mov picture).

Sendo sincero não sei se esta é a melhor opção já que apenas vi parte do código do seu projeto. Mas dessa maneira você pode até incrementar a transição de imagens fazendo um efeito que não se restrinja ao fade-out/fade-in.

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
      152.1k
    • Posts
      651.8k
×
×
  • Criar Novo...