• 0
Sign in to follow this  
jose.rob.jr

Efeitos Na Barra De Status

Question

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);
}

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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.

Sign in to follow this