Gitan
Legacy Member
Hallo,
Ik dacht eens een tickertape (lichtreclame) uit mijn mouw te schudden, meer zelfs, 'k wou het objectgeoriënteerd aanpakken maar the mean motherfucker werkt niet. Weet iemand wat het probleem zou kunnen zijn?
Korte uitleg:
in de functie init() (die uitgevoerd wordt bij het laden van de pagina), wordt een object gemaakt. Enkele parameters worden meegegeven aan de constructor. Daarna zou de banner moeten starten d.m.v. banner.start().
Ik dacht eens een tickertape (lichtreclame) uit mijn mouw te schudden, meer zelfs, 'k wou het objectgeoriënteerd aanpakken maar the mean motherfucker werkt niet. Weet iemand wat het probleem zou kunnen zijn?
Korte uitleg:
in de functie init() (die uitgevoerd wordt bij het laden van de pagina), wordt een object gemaakt. Enkele parameters worden meegegeven aan de constructor. Daarna zou de banner moeten starten d.m.v. banner.start().
Code:
<html>
<head>
<script type="text/javascript">
function TickerTape(text, time, id) {
var doorgaan = true;
var tekst;
var interval;
var lengte;
var i = 0;
var tickertekst;
var timer;
var element_id;
this.i = 0;
this.set_tekst(text);
this.set_interval(time);
this.element_id = id;
TickerTape.prototype.set_interval = function(time)
{
this.interval = time;
}
TickerTape.prototype.set_tekst = function(text)
{
this.tekst = text + " ";
this.lengte = tekst.length;
}
TickerTape.prototype.start = function()
{
this.show();
//even wachten:
//timer = setTimeout("start()", this.interval);
//apply wordt gebruikt om setTimeout lokaal uit te voeren op this
//(zijnde een instantie van TickerTape)
timer = setTimeout.apply(this, new Array("this.start()", this.interval));
}
TickerTape.prototype.show = function()
{
this.tickertekst = substr(this.tekst, this.i, this.lengte-this.i) . substr(this.tekst, 0, this.i);
if (document.getElementById){
document.getElementById(this.element_id).firstchild.nodeValue = this.tickertekst;
} else {
window.cleartimeout(timer);
}
this.i = this.i < (this.lengte-1) ? this.i++ : 0;
}
TickerTape.prototype.stop = function()
{
window.cleartimeout(timer);
}
}
function init()
{
alert('init wordt gestart');
banner = new TickerTape("Dit is een test", 250, "banner");
banner.start();
}
window.onload = init;
</script>
</head>
<body>
boven de banner
<div id="banner"></div>
onder de banner
</body>
</html>

