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]
