ungewöhnliche Herausforderung

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • ungewöhnliche Herausforderung

    Hallo zusammen,
    hier mein Problem:
    Genaue Situationsbeschreibung:

    Es liegt ein frameset vor mit einem topFrame und einem mainFrame.

    Im Topframe liegt in einem div ein Bild mit onMouseOver-Funktionalität:

    <div id="Layer3" style="position:absolute; left:28px; top:40px; width:140px; height:75px; z-index:1"><a href="bewerber_technik.htm" target="mainFrame" onMouseOut="document.images.fld.src='' + image + ''" onMouseOver="document.images.fld.src='' + imag + ''"><img name="fld" src="a01fld1.gif" border="0" width="140" height="75"></a></div>

    In diesem Div wird zunächst ein Startbild angezeigt (sozusagen Bild 0).
    Wenn der Nutzer darauf geht, wird eine Animation gezeigt (Bild 1). Geht er wieder weg, wird eine passende (!), zweite Animation gezeigt (Bild2).

    Es sollen aber bei Wechsel auf eine andere Main-Seite ein anderes Bildpaar zu sehen sein, Bild 1 und 2 sollen also passend zueinander gewechselt werden, denn es gibt mehrere dieser Bildpaare und sei sollen sukzessive sichtbar sein.

    Nach einigen Versuchen ist es mir gelungen, dass bei Neuladen des topFrames ein neues Bildpaar ausgesucht wird und
    zwar wird das erste Bild ausgewählt, indem eine Zufallszahl zwischen 1 und 13 erstellt wird (es gibt 13 Bildpaare), dieser Zahl ist genau ein Bild exakt zugeordnet. Danach wird diesem Bild durch eine diesem Prozess nachgelagerte switch-Funktion das passende zweite Bild exakt zugeordnet. In der ersten Funktion ist das Bild die Variable "image",
    in der nachfolgenden Funktion wird die Variable "imag" definiert und erstellt.

    Also: Bild 1 = Variable "image"; Bild 2 = Variable "imag".

    Nach einigen Anstrengungen fand ich auch heraus, WIE ich diese Variablen in die oben angegebene onMouseOver-Geschichte einbauen musste, damit sie überhaupt genutzt werden ('' + image + ''). So, wie es oben steht, funktioniert es nun wie folgt:

    Bei Neugenerierung des topFrames wird der Prozess durchlaufen (Zufallszahl, -> image; Switch, -> imag), aber da diese onMouseOver-Funktionalität vorher ein festes Bild haben will (die Variablen bekomme ich nicht als Startbild untergebracht) und dieses folglich immer gleich ist, wird die Änderung erst gesehen, wenn die Maus dorthin bewegt wird.
    Also wäre doch die Lösung, diese Zufallszahl-Bild1-Switch-Bild2-Generierung ins mainFrame zu packen, so dass bei jedem Seitenwechsel diese 2 Bilder neu generiert werden, ohne dass dann dieses fixe Startbild querschiessen sollte. Es wäre nur beim ersten Start des Framesets zu sehen, da das topFrame konstant bleibt.


    Nun gibt es zwei Probleme/Fragen:

    1) Diese 2 ineinandergesteckten JavaScript-Funktionen liegen nicht als "normale", abrufbare, ansprechbare Funktion vor und jeder Versuch, solch ein umgebendes Konstrukt zu erstellen, funktionierte bisher nicht (da fehlt mir dann doch die Erfahrung).

    2) Die Werte für diese Variablen "image" und "imag" müßten vom topFrame abgefragt werden bzw. (eher) vom mainFrame heraus aktualisiert werden. Im topFrame selbst müssen aber auch vor der Nutzung der Platzhalter "image" und "imag" diese zumindest beim ersten Start auch definiert werden, denn sonst wird als Fehler gemeldet, dass diese Variablen nicht definiert sind.

    Was soll ich tun?


    Zur genaueren Info:

    [So beginnt die Generierung:]

    var imagenumber = 13 ;
    var randomnumber = Math.random() ;
    var rand1 = Math.round( (imagenumber-1) * randomnumber) + 1 ;
    images = new Array
    images[1] = "a02fern1.gif"
    images[2] = "a03dell1.gif"
    .
    .
    [usw]
    .
    .
    var image = images[rand1]

    [HIER ist der Übergang von der ersten zur zweiten Funktion!!]

    var imag
    switch(image)
    {
    case "a02fern1.gif":
    imag = "a02fern2.gif";
    break;
    .
    .
    .
    [usw]
    .
    .
    .
    case "a13dsl1.gif":
    imag = "a13dsl2.gif";
    break;
    } [ENDE]

    Danke für Eure Hilfe

    Viele Grüße aus Mettmann
    Michael
    bamian@gmx.de

  • #2
    weil du hier postest, nehme ich an, du machst komplett in JS.
    Da der Topframe nicht nachgeladen wird, ist es sehr umständlich
    die Funktionen im Event-Handler zu modifizieren. Probier mal so:
    legt mal 2 hidden-Feld img1 und img2 im Topframe an. Ersetze image und imag mit document.formname.img1.value bzw. ...img2.value. Dann
    kannst du von Mainframe aus den Inhalt dieser hidden-Felder manipulieren.
    Die Event-Handler-Funktion holt sich einfach das Image-Pfad aus den
    hidden-Felder. Könnte funz

    Kommentar

    Lädt...
    X