Comunidad de diseño web y desarrollo en internet online

Cuenta Regresiva

Citar            
MensajeEscrito el 23 Abr 2007 06:42 pm
¡Hola! Estoy trabajando en una cuenta regresiva... necesito que despliegue cuántos días, horas, minutos y segundos faltan para que empiece un evento. Ya tengo la progra lista:

Tengo un movie clip con campos de texto dinámicos y la siguiente progra:

Código :

var d0;
var d1;
var d2;
var h0;
var h1;
var m0;
var m1;
var s0;
var s1;
var yr;
var mo;
var da;
var ho;
var mi;
var nextYear;
var timeScript;
var now_date;
var load_xml;
var isSound;
var tick_sound = new Sound();
tick_sound.attachSound("tick");
tick_sound.setVolume(25);
startCountdown = function (yr, mo, da, ho, mi, nextYear, timeScript, color, snd)
{
    var _l1 = color;
    var _l2 = this;
    d0_txt.textColor = "0x" + _l1;
    d1_txt.textColor = "0x" + _l1;
    d2_txt.textColor = "0x" + _l1;
    h0_txt.textColor = "0x" + _l1;
    h1_txt.textColor = "0x" + _l1;
    m0_txt.textColor = "0x" + _l1;
    m1_txt.textColor = "0x" + _l1;
    s0_txt.textColor = "0x" + _l1;
    s1_txt.textColor = "0x" + _l1;
    _l2.yr = yr;
    _l2.mo = mo;
    _l2.da = da;
    _l2.ho = ho;
    _l2.mi = mi;
    _l2.nextYear = nextYear;
    _l2.timeScript = timeScript;
    _l2.isSound = snd.length ? (true) : (false);
    getCurrentTime();
};
getCurrentTime = function ()
{
    var _l1 = this;
    if (_l1.timeScript == "")
    {
        _l1.now_date = new Date();
        checkMSecsRemaining();
    }
    else
    {
        load_xml = new XML();
        load_xml.ignoreWhite = true;
        load_xml.onLoad = function (success)
        {
            if (success)
            {
                var _l1 = Number(this.firstChild.firstChild.firstChild.nodeValue) * 1000;
                now_date = new Date(_l1);
                checkMSecsRemaining();
            }
        };
        load_xml.load(_l1.timeScript);
    }
};
checkMSecsRemaining = function ()
{
    startMSecsRemaining = getMSecsRemaining(yr, mo, da, ho, mi);
    if (startMSecsRemaining)
    {
        setControlMC();
    }
    else
    {
        setDisplay();
    }
};
setControlMC = function ()
{
    this.createEmptyMovieClip("control_mc", 0);
    control_mc.onEnterFrame = function ()
    {
        this._parent.setDisplay();
    };
};
getMSecsRemaining = function (year, mon, day, hour, min)
{
    var _l2 = year;
    if (!_l2)
    {
        _l2 = now_date.getFullYear();
    }
    var _l1 = new Date(_l2, mon - 1, day, hour, min);
    
    while (_l1.getTime() < now_date.getTime())
    {
        _l1.setYear(Number(_l1.getFullYear()) + 1);
    }
    _l1.getTime() >= now_date.getTime() ? (Math.floor(_l1.getTime() - now_date.getTime())) : (0);
    return(_l1.getTime() >= now_date.getTime() ? (Math.floor(_l1.getTime() - now_date.getTime())) : (0));
};
getMSecsElapsed = function ()
{
    return(Math.floor(getTimer()));
};
setChar = function (part, val)
{
    var _l1 = part;
    var _l2 = this;
    if (_l2[_l1] != val)
    {
        _l2[_l1 + "_txt"].text = _l2[_l1] = val;
        if (_l1 == "s1" && tick_sound.getVolume() && isSound)
        {
            tick_sound.start();
            tick_sound.setVolume(tick_sound.getVolume() - 1);
        } 
    }
};
leadingZeros = function (str, no)
{
    var _l1 = str;
    var _l2 = no;
    while (_l1.length < _l2)
    {
        _l1 = "0" + _l1;
    } // Fin while
    return(_l1);
};
setDisplay = function ()
{
    var msecs = startMSecsRemaining - getMSecsElapsed();
    if (msecs > 0)
    {
        temp_date = new Date(msecs);
        var _l1 = Math.floor(msecs / 86400000);
        var h = Math.floor((msecs - _l1 * 86400000) / 3600000);
        var _l3 = temp_date.getMinutes().toString();
        var _l2 = temp_date.getSeconds().toString();
        _l1 = leadingZeros(_l1.toString(), 3);
        h = leadingZeros(h.toString(), 2);
        _l3 = leadingZeros(_l3, 2);
        _l2 = leadingZeros(_l2, 2);
        setChar("d0", _l1.charAt(0));
        setChar("d1", _l1.charAt(1));
        setChar("d2", _l1.charAt(2));
        setChar("h0", h.charAt(0));
        setChar("h1", h.charAt(1));
        setChar("m0", _l3.charAt(0));
        setChar("m1", _l3.charAt(1));
        setChar("s0", _l2.charAt(0));
        setChar("s1", _l2.charAt(1));
    }
    else
    {
        d0_txt.text = "0";
        d1_txt.text = "0";
        d2_txt.text = "0";
        h0_txt.text = "0";
        h1_txt.text = "0";
        m0_txt.text = "0";
        m1_txt.text = "0";
        s0_txt.text = "0";
        s1_txt.text = "0";
    } // Fin de
};


Luego, en la línea de tiempo principal tengo esto:

Código :

d = new Date();
if (!yr)
{
    yr = d.getFullYear();
    jump = true;
} 
if (!mo)
{
    mo = 6;
} 
if (!da)
{
    da = 14;
}
if (!ho)
{
    ho = 10;
}
if (!mi)
{
    mi = 0;
}
if (String(co) == "")
{
    co = "000000";
}
sc = String(sc);
if (!jump)
{
    jump = false;
} 
countdown_mc.startCountdown(yr, mo, da, ho, mi, jump, sc, co, snd);
stop();


Pero algo está fallando... no se despliega ningún texto :(

¿Me pueden ayudar?[/code]

Por ksequen

15 de clabLevel



Genero:Femenino  

firefox
Citar            
MensajeEscrito el 23 Abr 2007 07:17 pm
hola, has intentado el _root para poner tus textos?

Por Livio

5 de clabLevel



Genero:Masculino  

firefox
Citar            
MensajeEscrito el 23 Abr 2007 08:57 pm

Livio escribió:

hola, has intentado el _root para poner tus textos?

¿En donde lo pongo?

Por ksequen

15 de clabLevel



Genero:Femenino  

firefox

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.