Undefined ist Null oder kein Objekt



  • Hallo Leute!

    Ich will auf meiner Seite solche dynmaschinen Buttons machen. Dazu hier mal der JavaScriptCode:

    script language="JavaScript">
    <!--
    function Init() {
    var Buttons = new Array(8,2);
    var i = 0;
    while(i != 😎 {
    Buttons[i][0]=new Image(); <----Da kommt der Fehler
    Buttons[i][1]=new Image();
    i++;
    };

    Buttons[1][1].src="imgs\button_news0.gif"
    Buttons[0][1].src="imgs\button_news1.gif"

    Buttons[1][0].src="imgs\button_uebermich0.gif"
    Buttons[1][1].src="imgs\button_uebermich1.gif"

    Buttons[2][0].src="imgs\button_links0.gif"
    Buttons[2][1].src="imgs\button_links1.gif"

    Buttons[3][0].src="imgs\button_contact0.gif"
    Buttons[3][1].src="imgs\button_contact1.gif"

    Buttons[4][0].src="imgs\button_band0.gif"
    Buttons[4][1].src="imgs\button_band1.gif"

    Buttons[5][0].src="imgs\button_cpp0.gif"
    Buttons[5][1].src="imgs\button_cpp1.gif"

    Buttons[6][0].src="imgs\button_vote0.gif"
    Buttons[6][1].src="imgs\button_vote1.gif"

    Buttons[7][0].src="imgs\button_xxx0.gif"
    Buttons[7][1].src="imgs\button_xxx1.gif"
    };

    function Wechsel(Nr, Status) {
    switch (Nr) {
    case 0:
    Button_News.src=Buttons[i][Status].src;
    case 1:
    Button_Ich.src=Buttons[i][Status].src;
    case 2:
    Button_Links.src=Buttons[i][Status].src;
    case 3:
    Button_Contact.src=Buttons[i][Status].src;
    case 4:
    Button_Band.src=Buttons[i][Status].src;
    case 5:
    Button_Cpp.src=Buttons[i][Status].src;
    case 6:
    Button_Vote.src=Buttons[i][Status].src;
    case 7:
    Button_xxx.src=Buttons[i][Status].src;
    };
    };
    //-->
    </script>

    So, beim Laden, also OnLoad im Body-Tag rufe ich Init() auf. Dann kommt der Fehler:

    'Undefined' ist null oder kein Objekt
    Ich weiß nicht was das heißen soll/kann. Ich hoffe ihr könnt mir helfen.

    Gruß, Maxi



  • Original erstellt von Maxi:
    **
    var Buttons = new Array(8,2);
    **

    Tja hier erstellst du ein neues Array und belegst es mit den beiden Werten 8 und 2.
    Du müsstest es folgendermaßen schreiben:

    var Buttons = new Array(8);
    for(i=0; i<8; i++)
    {
    Buttons[i] = new Array(2);
    }
    

    Dann hast du ein Zwei dimensionales Feld, so wie du es wolltest.



  • Ich hab mir da mal ein kleines Script gebastelt, das die Bilder automatisch vorlädt und sich um den onMouseOver Effekt kümmert: 🙂

    <IMG src='./images/news.gif' width=120 height=15 border=0 alt='News' name='news' onMouse*Over='showImage(this,1)' onMouseOut='showImage(this,0)'>
    <script type="text/javascript">
    <!--
     // preload images
     for (x = 0; x < document.images.length; x++) {
      if (document.images[x].name) {
       grafic = new Image();
       grafic.src = './images/' + document.images[x].name + '_on.gif';
      }
     }
    
     function showImage (Image, MOver) {
      onSuffix = (MOver) ? '_on' : '';
      Image.src = './images/' + Image.name + onSuffix + '.gif';
     }
    //-->
    </script>
    

    Den unteren Script-Block einfach ganz ans Ende setzten. (in einer onLoad Funktion müsste es auch klappen 🙄 )

    PS: Bei onMouse*Over das Sternchen weglassen 😉

    [ Dieser Beitrag wurde am 15.03.2003 um 19:55 Uhr von flenders editiert. ]


Anmelden zum Antworten