Markus Speicherl: Flash: wmode=transparent mit Hindernissen

Hallo

Ich sag direkt: Ich habe von Flash kaum Ahnung.

Ich spiele seit einigen Tagen mit einer der vielen offenen CoverFlow-Clonen herum die es derzeit im Netz gibt. Dabei habe ich jetzt schon alles sehr auf meien Wünsche angepasst.

Was mir jetzt vorschwebte war, dass ich einen Div-Container über die Flashanwendung legen könnte. Dafür gibt es ja den trick den wmode auf transparent oder opque zu setzen. Das problem das jedoch daraus resultiert, ist dass  er dann zwar den layer tatsächlich über die flashanwendung legt, aber allerdings nichtmehr auf die Cursor-tasten links-rechts und das Mausrad reagiert, womit eine alternative scrollmöglichkeit in der Flashanwendung möglich ist (und die ich auch nicht missen möchte).

Weiss jemand ob man die Tasten und das Mausrad im falle von transparent als wmode anders ansprechen muss?

Ich habe mal in den Code geschaut und finde da einige Stellen an denen die Tasten-Events abgefragt werden:

myMO.onMouseWheel = function(delta:Number):Void  {
  if (delta > 0) {
   next();
  } else if (delta <= 0) {
   previous();
  }
 };
 myKO.onKeyDown = function():Void  {
  if (Selection.getFocus() != "_level0.goto") {
   if (Key.isDown(Key.RIGHT)) {
    next();
   } else if (Key.isDown(Key.LEFT)) {
    previous();
   }
  }
 };

Allerdings bin ich was das angeht überfragt.

Jemand ne IDee?

grüsse und schöne weihnachten.
MS

  1. Hallo Markus!

    Was mir jetzt vorschwebte war, dass ich einen Div-Container über die Flashanwendung legen könnte. Dafür gibt es ja den trick den wmode auf transparent oder opque zu setzen. Das problem das jedoch daraus resultiert, ist dass  er dann zwar den layer tatsächlich über die flashanwendung legt, aber allerdings nichtmehr auf die Cursor-tasten links-rechts und das Mausrad reagiert, womit eine alternative scrollmöglichkeit in der Flashanwendung möglich ist (und die ich auch nicht missen möchte).

    Das ist aber kein auf Flash beschränktes Problem. Ich habe schon festgestellt, dass ich meine Freundin, wenn sie hinter einer Glasscheibe steht, auch nicht mehr anfassen kann. ;-)

    Weiss jemand ob man die Tasten und das Mausrad im falle von transparent als wmode anders ansprechen muss?

    Du musst nicht den Code von Flash ändern, sondern auf deiner Seite dafür sorgen, dass das Flashobjekt den Fokus zugewiesen bekommt. Maus- und Tasteneingaben betreffen jeweils das aktive Objekt. Wenn du nicht mehr auf das Flashobjekt klicken kannst, musst du halt mit einem Klick auf ein anderes Element das Flashobjekt aktivieren. Für die Tasteneingabe und allenfalls auch für das Mausrad könnte dies auch per ActionScript in Flash gelöst werden, falls diese Eingabemöglichkeiten sonst nicht benötigt werden. Für die linke Maustaste geht dies nicht.

    Beste Grüsse
    Richard

    1. Hallo

      Du musst nicht den Code von Flash ändern, sondern auf deiner Seite dafür sorgen, dass das Flashobjekt den Fokus zugewiesen bekommt. Maus- und Tasteneingaben betreffen jeweils das aktive Objekt. Wenn du nicht mehr auf das Flashobjekt klicken kannst, musst du halt mit einem Klick auf ein anderes Element das Flashobjekt aktivieren.

      Ich vergass du erwähnen, dass es sonderlich ist. Denn ich kann das Coverflow fortan nicht mehr mit cursor/masrad bewegen jedoch es durchaus noch mit klicken auf die objekte links un d rechts bewegen. Der "Mausklick" in seiner Funktion geht also durch. Ich dachte ja auch dass wenn man gezielt auf ein aktives Elemnte klickt danach das Flashobjekt makiert wäre so dass der/das cursor/mausrad wieder gehen... aber Pustekuchen!

      Für die Tasteneingabe und allenfalls auch für das Mausrad könnte dies auch per ActionScript in Flash gelöst werden, falls diese Eingabemöglichkeiten sonst nicht benötigt werden. Für die linke Maustaste geht dies nicht.

      Hast du dafür ein tiefer gehendes Beispiel wo soetwas schon gemacht wurde? Ich verstehe nicht nach welchem begriff oder befehl ich suchen muss damit ich eine Lösung finde. Du hast doch jetzt nämlich gesagt DASS es geht... oder?

      Das ist aber kein auf Flash beschränktes Problem. Ich habe schon festgestellt, dass ich meine Freundin, wenn sie hinter einer Glasscheibe steht, auch nicht mehr anfassen kann

      Sehr wohl auf Flash beschränkt hiesse dass, du kannst deine Freundin SEHEN, ihr aber nicht SAGEN was sie tuen soll, sondern sie nur durch ANFASSEN (z.B. "In die Hupen kneifen") anweisen was sie tuen soll. reply-;)

      grüsse

      1. Hallo Markus!

        Ich vergass du erwähnen, dass es sonderlich ist.

        Sonderlich ist vor allem deine Beschreibung. Du sagtest, du hättest ein Div über das Flash-Objekt patziert. Dazu passt aber die folgende Aussage ganz und gar nicht.

        Denn ich kann das Coverflow fortan nicht mehr mit cursor/masrad bewegen jedoch es durchaus noch mit klicken auf die objekte links un d rechts bewegen.

        Das Mausrad und der Mausklick sind zwei verschiedene Dinge. Das Mausrad funktioniert nur, wenn das Flash-Objekt zuvor angeklickt wurde. Und es wird deaktiviert, wenn du ausserhalb des Flash-Objekts klickst, auch mit dem Mausrad selbst.

        Der "Mausklick" in seiner Funktion geht also durch. Ich dachte ja auch dass wenn man gezielt auf ein aktives Elemnte klickt danach das Flashobjekt makiert wäre so dass der/das cursor/mausrad wieder gehen... aber Pustekuchen!

        Ein Mausklick geht durch nicht durch. Entweder ist dein genanntes Div nicht existent, nicht visible oder befindet sich an anderer Stelle.

        Für die Tasteneingabe und allenfalls auch für das Mausrad könnte dies auch per ActionScript in Flash gelöst werden,
        Hast du dafür ein tiefer gehendes Beispiel wo soetwas schon gemacht wurde? Ich verstehe nicht nach welchem begriff oder befehl ich suchen muss damit ich eine Lösung finde. Du hast doch jetzt nämlich gesagt DASS es geht... oder?

        Dein Suchbegriff ist setFocus(), dazu findest du im ActionScript-Referenzhandbuch Code-Beispiele. Letzlich wird dich aber auch das nicht davor bewahren, dass ein beliebiger Mausklick den Fokus wieder vom Flash-Objekt wegnimmt. Warum du ein Flash-Objekt, das bedienbar sein soll, mit einem Div abdeckst, mag dein Geheimnis bleiben. Bei der Navigation würdest du dies ja auch nicht machen.

        Beste Grüsse
        Richard