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

Efeitos Na Barra De Status


jose.rob.jr

Pergunta

Esta função adiona até dois efeitos na barra de status. Totalmente confíguravel.

var animar_status_vars=new Object();
animar_status_vars['local_index']=0;         //esta variavel precisa ser definida fora da função
animar_status_vars['mensagem_index']=0;
function animar_status(){
    ///////////////////////////////////////////////////////////////////////////////////////////
    // CHAME ESTA FUNÇÃO APENAS UMA VEZ ////                   NOTA                          //
    ///////////////////////////////////////////////////////////////////////////////////////////
    // você pode chama-la adicionando   //// IMPOSSÍVEL DE MUDAR A BARRA DE STATUS NO          //
    // onload="animar_status();" dentro //// FIREFOX QUANDO O JAVASCRIPT NÃO ESTÁ AUTORIZADO //
    // da tag <body> no seu documento    ////                                                 //
    ///////////////////////////////////////////////////////////////////////////////////////////
    //       função criada e distribuida gratúitamente por http://www.thesims2br.com/        //
    //                    use avontade mas não remova os créditos                            //
    ///////////////////////////////////////////////////////////////////////////////////////////
    
    var mensagem="Mensagem";                 //mensagem que aparecerá na barra de status
    var align="right";                         //alinhamento da barra de status (string: left|center|right)
    var intervalo=5;                         //intervalo da animação, quanto menos mais rapido (100 = 1 segundo) (int)
    //animação do status
    var anima_status=true;                     //liga a animação na barra de status (boolean: true|false)
    var map=10;                                 //número de caractéres envolvido no efeito em cada lado (int: 0 a variavel)
    var none_char="-";                         //caractére stático (string: 1 caractére)
    var right_char=">";                         //caractére ativo que inicia na direita (string: 1 caractére)
    var left_char="<";                         //caractére ativo que inicia na esquerda (string: 1 caractére)
    var wall_char="|";                         //caractére que faz o caractére ativo quicar (string: 1 caractére)
    var add_space=true;                         //adiciona espaço na direita e na esquerda da mensagem (boolean: true|false)
    //animação da mensagem
    var anima_mensagem=false;                 //liga a animação na mensagem (boolean: true|false)
    var animacao_mensagem='auto';             //tipo da animação na mensagem (string: auto|up|down)
    
    ////////////////////////////////
    // NÃO ALTERE O CÓDIGO ABAIXO //
    ////////////////////////////////
    
    function parseint(n){
    //função privada apenas para debug        
        n=n.toString();
        n=n.split(".");
        if(n[1]) n[0]=parseInt(n[0])+1;
        n=n[0];
        return n;
    }

    var status="";
    var statusT="";
    var mensagemT="";
    var mensagem_back=false;
    var i=0;
    var local_index=animar_status_vars.local_index;
    var mensagem_index=animar_status_vars.mensagem_index;
    
    if(anima_mensagem){
        if(mensagem_index<0){
            mensagem_back=true;
            mensagem_index=mensagem_index*(-1);
        }

        mensagemT=mensagem.substring(0,mensagem_index);
        if(!animacao_mensagem||animacao_mensagem=='auto'){
            if(mensagem.substring(mensagem_index,mensagem_index+1).toLowerCase()==mensagem.substring(mensagem_index,mensagem_index+1)){
                mensagemT+=mensagem.substring(mensagem_index,mensagem_index+1).toUpperCase();
            }
            else{
                mensagemT+=mensagem.substring(mensagem_index,mensagem_index+1).toLowerCase();
            }
        }
        else if(animacao_mensagem=='up') mensagemT+=mensagem.substring(mensagem_index,mensagem_index+1).toUpperCase();
        else mensagemT+=mensagem.substring(mensagem_index,mensagem_index+1).toLowerCase();
        mensagemT+=mensagem.substring(mensagem_index+1);
        mensagem=mensagemT;
        
        if(mensagem_index>=mensagem.length-1||mensagem_back){
            mensagem_index=(mensagem_index*(-1))+1;
        }
        else mensagem_index++;
    }
    
    if(anima_status){
        mensagem=wall_char+(add_space?" ":'')+mensagem+(add_space?" ":'')+wall_char;
        for(i=1;i<=map;i++) status+=none_char;
        status+=mensagem;
        for(i=1;i<=map;i++) status+=none_char;
        
        if(local_index<map){
            statusT=status.substring(0,local_index)+right_char+status.substring(local_index+1,status.length-map);
            statusT+=status.substring(status.length-map,status.length-map+(map-local_index-1))+left_char+status.substring(status.length-map+(map-local_index));
        }
        else{
            statusT=status.substring(0,map*2-local_index-1)+left_char+status.substring(map*2-local_index,status.length-map);
            statusT+=status.substring(status.length-map,status.length-map+(local_index-map))+right_char+status.substring(status.length-map+(local_index-map+1));
        }
        
        statusT=wall_char+statusT+wall_char;
    }
    else{
        statusT=mensagem;
    }
    if(statusT.length>127){
        alert("Status muito grande\n\nA barra de status não pode ter mais de 127 bytes. Diminua "+(statusT.length-127)+" caractére"+(statusT.length-127>1?'s':'')+" da mensagem ou mude o map para "+(map-parseint((statusT.length-127)/2))+".");
        return;
    }
    
    if(align=='right') while(statusT.length<127) statusT=" "+statusT;
    else if(align=='center') while(statusT.length<127) statusT=" "+statusT+" ";

    window.defaultStatus=statusT;
    
    if(local_index>=map*2-1) local_index=0;
    else local_index++;
    
    animar_status_vars.local_index=local_index;
    animar_status_vars.mensagem_index=mensagem_index;
    setTimeout("animar_status()",intervalo*10);
}

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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...