henk: objekt zwischen 2 frames verschieben

hallo leute,

ich habe ein objekt, das ich mit drag&drop verschieben kann,

jetzt moechte ich dieses auch zwischen 2 verschiedenen frames verschieben.
ich denke mal, dass dies nicht moeglich ist, wenn doch bitte postet mal wie das geht.

mein plan ist nun folgender:
wenn ich das element drage aktiviere ich einen eventhandler
wenn ich mit dem element an einen rand des frames komme, loesche ich es in diesem frame und baue es im neuen frame wieder auf.

problem ist nur, ich habe keinen solchen eventhandler gefunden, mit man ueberpruefen kann, ob ein objekt nun einen frame verlassen hat bzw. in welche richtung es den frame verlassen hat.

ausserdem ist mir nicht so ganz klar wie ich den drag des objektes wiederherstellen soll, also das die maus dann das objekt wieder festhaelt,
denn wenn ich das objekt im anderen frame neu erstelle, ist der drag ja weg.

vielleicht hat einer von euch eine idee wie sowas geht

thx
henk

  1. Sup!

    Vielleicht kannst Du ja feststellen, wo die Maus gerade ist, und ob eine Maustaste gedrückt ist, und in welcher Richtung der Frame liegt, wo das Objekt hingezogen werden soll.

    Wenn dann jemand die Maustaste drückt und hält, dann könnte der Frame das irgendwo speichern (und wieder löschen, wenn die Maustaste losgelassen wird - aber nicht, wenn die Maus ganz weg ist). Wenn dann im anderen Frame plötzlich festgestellt wird, dass die Maus in diesem Frame ist und gedrückt, dann könnte man im anderen Frame nachschauen, ob dort die Maus zuletzte gedrückt war, und daraus schliessn, dass ein Objekt "rübergezogen" wurde.

    Fragt sich nur, ob die Handler onMouseover, OnMousedown, onMouseout in der richtigen Reihenfolge und korrekt feuern, um das so zu realisieren.

    Gruesse,

    Bio

    --
    Und er laechelt, denn er weiss: Das Boese siegt immer!
    1. ja so muesste es schon funktionieren,

      aber mit den handlern wird das sicher ne schwierige sache,

      kann den ueberhaupt mehr als ein event-handler gleichzeitig ausgeloest werden,
      weil alle 3 muessen ja ein positives ergebniss liefern....

      thx
      henk

      1. Sup!

        Natuerlich loesen sie nicht gleichzeitig aus.
        Du kannst aber wahrscheinlich eine Art "endlichen Automaten" basteln, der abhaengig davon, welche Events ausloesen, bestimmt, ob Du jetzt im Zustand "drag" bist, oder nicht.

        Also...

        onMouseOver => mausimframe = 1 && teste, ob im anderen frame drag = 1; wenn ja, dann objekt kopieren
        onMouseOut => mausimframe = 0

        onMousedown (wenn mausimframe = 1) => drag (ggf. kopiertes objekt verwenden)
        onMouseup (wenn mausimframe = 0) => drop

        Oder so.

        Gruesse,

        Bio

        1. "
          onMouseOver => mausimframe = 1 && teste, ob im anderen frame drag = 1; wenn ja, dann objekt kopieren
          onMouseOut => mausimframe = 0
          "

          das problem ist aber,
          das wenn ein element im dragmodus ist,
          ich mit der maus gar nicht mehr in den anderen frame komme bzw ich den "alten" frame nicht verlassen kann --> wenn ich den frame verlassen will, scrollt der fram in die richtung in der ich ihn verlassen will.

          hm, ich koennete vielleicht in diesen frame einen layer einschieben, der nicht den ganzen frame ausfuellt und wenn ich diesen layer dann verlasse deine vorgeschlagenen aktionen ausfuehren

          das werd ich gleich mal testen

          thx
          henk

          1. Sup!

            Hmpf... wenn der Frame scrollt, ist das natürlich weniger gut - vielleicht kann man Scrolling abschalten oder so?

            Gruesse,

            Bio

            --
            Und er laechelt, denn er weiss: Das Boese siegt immer!