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

Painel de Notícias (Flash + XML)


Adan.Ribeiro

Pergunta

Olá,

A navegação do meu painel de notícias será identica à que vemos por aí nos portais de notícias (ex. site do IG).

Tenho o arquivo FLA onde o ActionScript define os dados a serem carregados.

Tenho uma classe chamada Slide.as que foi retirada de um exemplo em outro site que define o comportamento do temporizador do painel, os campos de textos que vão receber os dados e outros detalhes.

E também tenho o arquivo XML com os dados que vão preencher o FLA.

A dúvida é a seguinte: Eu tenho um controle neste painel com o número de cada slide e setas que indicam o próximo e também o slide anterior. Preciso bolar uma forma de identificar os slides para relacionar cada número com o seu respectivo slide.

Este é o AS que vai no FLA.

var xmlDados:XML = new XML();
xmlDados.ignoreWhite = true;

xmlDados.onLoad = function(S:Boolean):Void
{
    if(S){
        var tempData:Array = new Array();
        var f:XMLNode = this.firstChild.childNodes[0];    
        do {
            var tempObj:Object = {
                src: f.attributes.src,
                href: f.attributes.href,
                title: f.attributes.title,                                
                desc: f.childNodes[0].nodeValue,
                texto: f.childNodes[1].nodeValue
            }
            tempData.push(tempObj);
            delete tempObj;
            
        } while(f = f.nextSibling);
        Slide.dataProvider = tempData;
    }
}
xmlDados.load("slides.xml");
Este é o Slide.as
class Slide extends MovieClip {
    
    
    public var mcAlvo:MovieClip;
    public var mcAlvo1:MovieClip;
    public var mcAlvo2:MovieClip;
    public var mcInfo:MovieClip;
    public static var FIRST_SLIDE:Boolean = true;
    public static var INIT_TIME:Date;
    public static var LAST_TIME:Date;
    public static var DATA:Array = new Array();
    public static var INDEX_DATA:Number = 0;
    public static var MCL_IMG:MovieClipLoader = new MovieClipLoader();
    public static var SHOW_NEXT:Boolean = false;
    public static var MC_ALVO:MovieClip;
    public static var TIMER:Number;
    public static var UPDATE_TIME:Number = 5;
    
    
    function Slide(){
        
        
        Slide.MCL_IMG.addListener(Slide);
        
        (mcAlvo1 = mcAlvo.duplicateMovieClip("mcAlvo1", 1)).swapDepths(mcInfo);
        (mcAlvo2 = mcAlvo.duplicateMovieClip("mcAlvo2", 2)).swapDepths(mcInfo);
        Slide.MC_ALVO = mcAlvo1;
        
        
        Slide.TIMER = setInterval(mx.utils.Delegate.create(this, this.nextSlide), 10);
        
        mcAlvo._visible = false;
        
    }
    
    public static function set dataProvider(data:Array):Void
    {
        
        Slide.DATA = data;
        if(Slide.DATA.length > 0){
            
            Slide.INDEX_DATA = 0;
            Slide.INIT_TIME = new Date();
            Slide.MCL_IMG.loadClip(Slide.DATA[Slide.INDEX_DATA].src, Slide.MC_ALVO);
            Slide.LAST_TIME = new Date();
        }
    }
    
    public static function onLoadStart(mcAlvo:MovieClip):Void
    {
        
        Slide.SHOW_NEXT = false;
    }
    
        
    public static function onLoadInit(mcAlvo:MovieClip):Void
    {
        Slide.SHOW_NEXT = true;
        mcAlvo._parent.nextSlide();
    }
    
    public function nextSlide():Void
    {
            if(Slide.SHOW_NEXT
               && (Slide.FIRST_SLIDE == true || (Slide.LAST_TIME - Slide.INIT_TIME) > (UPDATE_TIME * 1000))){
            
            Slide.FIRST_SLIDE = false;
            
            Slide.INIT_TIME = new Date();
            Slide.LAST_TIME = new Date();
            Slide.MC_ALVO.swapDepths((Slide.MC_ALVO == mcAlvo1 ? mcAlvo2 : mcAlvo1));
            mcInfo.tTitulo.text = Slide.DATA[Slide.INDEX_DATA].title;
            mcInfo.tDesc.text = Slide.DATA[Slide.INDEX_DATA].desc;
            mcInfo.tTexto.text = Slide.DATA[Slide.INDEX_DATA].texto;
            Slide.MC_ALVO.link = Slide.DATA[Slide.INDEX_DATA].href;
            Slide.MC_ALVO.onRelease = function():Void
            {
                getURL(this.link);
            }
            
            Slide.MC_ALVO = Slide.MC_ALVO == mcAlvo1 ? mcAlvo2 : mcAlvo1;
            if(Slide.INDEX_DATA+1 >= Slide.DATA.length) {
                Slide.INDEX_DATA = 0;
            } else {
                Slide.INDEX_DATA++;
            }
            Slide.MCL_IMG.loadClip(Slide.DATA[INDEX_DATA].src, Slide.MC_ALVO);            
        } else {
            
            Slide.LAST_TIME = new Date();
        }
    }
}
E aqui o Slides.XML.
<?xml version="1.0" encoding="UTF-8"?>
<slides>
    <slide src="fotos/foto1.jpg" href="link1.htm" title="Alunas recebem prêmio por" ><![CDATA[Criatividade]]><![CDATA[Algum texto com até 74 caracteres.]]></slide></slide>    
</slides>

Só para Ninjas.

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Gostariade saber se você tem como postar um slide com setas, para traz e para frente e pause.

Mesmo assim mantendo o link sobre cada foto, que é isso que esta dificiul de achar na net.

O pior você já fez, falta só as setas.

Eu tenho um completinho com as setas mais não tem links nas fotos para abrir sites externos.

E eu preciso disso porque na verdade é um banner de publicidade, vai mudar direto, então preciso que seja em XML e AC2. pois vou carregar em um outro movie clipe no home.

Se puder me ajudar ai vai meu email.

smentretenimento@gmail.com

Obrigado.

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,3k
    • Posts
      652,5k
×
×
  • Criar Novo...