David: Probleme mit substr()

Hallo,

wahrscheinlich sehe ich mal wieder den Wald vor lauter Bäumen nicht.
Anders kann ich es mir einfach nicht erklären:

Also:

Ich habe nach folgendem Schema eine ganze Reihe von Layern definiert:

<layer name="f100250lay" width=150 height=150 left=100 top=250>
<div id="f100250" style="padding:0px;position:absolute;left:100px;top:250px;width:150px; height:150px; visibility=visible"><a href="kjh" onMouseOver="down(100250);" onMouseOut="up(100250);"><img border="0" SRC="http://www.mously.com/wuerfeltest/bilder/wuerfel2.gif" WIDTH="150" HEIGHT="150"></a></div></layer>

Die Zahl im Namen (100250) setzt sich aus der x- und der y-Koordinate
zusammen. Dieser Wert wird beim Mouseover-Ereignis an eine Funktion namens "down" übergeben:

function down(d)
{
dx = d.substr(0,3);
dy = d.substr(3,3);
ex = dx - dist;
ey = dy + dist;
moveit(d,dx,dy,ex,ey,5);
}

Diese Funktion soll folgendes leisten:

1. Der übergebene Wert wird in zwei Teile gesplittet um die x- und y-
koordinaten des layers zu ermitteln (dx und dy).

2. Mit ex und ey werden zwei weitere werte eingeführt, die sich von
dx und dy um den wert "dist" (vorher definierte variable) unterscheiden.

3. die Parameter "layerbezeichnungsnummer (d), dx, dy, ex, ey, 5" werden an die funktion "movit" uebergeben, die den layer d von dx, dy mit der geschwindigkeit "5" nach ex,ey bewegen soll.

Das dumme an der Sache ist nur, das es nicht klappt. Ich glaube, der Fehler liegt irgendwo bei "substr" (meldet zumindest der browser).

Was mache ich falsch?
Die komplette Seite liegt unter < http://www.mously.com/wuerfeltest>

Vielen Dank für eure Hilfe

David

  1. Hi,

    Deine Funktion:

    function down(d)
    {
    dx = d.substr(0,3);
    dy = d.substr(3,3);
    ex = dx - dist;
    ey = dy + dist;
    moveit(d,dx,dy,ex,ey,5);
    }

    Dein Aufruf:

    down(100250);

    d wird als numerischer Wert an die Funktion übergeben, und der hat nun mal keine substr-Methode. Wenn Du down('100250') schreibst, sollte es klappen - jedenfalls bis zum nächsten Fehler ;)

    Gruß
    Steffen

  2. Hallo David,

    meines Wissens übergibst Du als Parameter einen numerischen Wert und keinen String. Der numerische Wert ist aber nur schwer aufzuteilen.

    Versuch doch mal, den Parameter in Hochkommata zu setzen :

    onMouseOver="down('100250');" onMouseOut="up('100250');">

    ich hoffe, das das Dein Problem löst.

    MfG
    Inge

  3. Hi David,

    jetzt bewegt er sich, ich hoffe auch in der Art wie Du es wolltest.
    Unter < http://www.jensirrgang.de/wuerfeltest.html> kannst Du es Dir anschauen, und Dir den geänderten Quelltext holen. Sollte dies nicht das sein, was Du wolltest, melde Dich bei mir.

    Jens

    PS: Die erste Reihe ist nach dem Neuaufbau etwas verrutscht, aber aufgrund des gestrigen Abends (heutigen Morgen), habe ich etwas mit Problemen zu kämpfen. Im übrigen würde mich der tiefere Zweck dieser Sache interessieren, es gibt dann vielleicht eine andere Möglichkeit.