Hallo,
function fly(interval, villain, pos) {
document.getElementById('villain').style.left = pos + 'px';
pos = pos + 10;
if (pos > -50) {
setTimeout('fly(' + interval + ', ' + villain + ', ' + pos + ')',interval);
)
}fly('10', 'mrevil', '500');
Es müsste document.getElementById(villain) heißen, ohne die Anführungsstriche. Schließlich soll die Variable verwendet werden.
Und Zahlen übergibt man als Zahlen, nicht als Strings, also ebenfalls ohne Anführungsstriche: fly(10, 'mrevil', 500)
Außerdem soll hier wohl heruntergezählt werden, nicht 10 addiert werden.
Wobei es natürlich unnötig ist, immer wieder getElementById auszuführen. Das verlangsamt die Animation unter Umständen. Aber wenn man solche Überlegungen anstellt, ist es natürlich auch ein Performance-Killer und schlechter Stil, setTimeout einen zusammengebastelten String zu übergeben. Aber dann kommt man schon zu der von mir angesprochenen objektorientierten Lösung, die wäre dann übersichtlicher und ausbaufähiger.
Mathias
--
[SELFHTML aktuell Weblog](http://aktuell.de.selfhtml.org/weblog/)