Rechtsklick in Flash oder “a real custom context menu”

RightClickHeader

Welcher Flashentwickler hatte noch nicht den Wunsch auch mal das Kontextmenü völlig verschwinden zu lassen oder es wenigstens durch eine besser zur Applikation passendes Design aufzuwerten.

FlashPlayerRechtsklickDialog

Reine ActionScript basierende Lösungen gibt es keine, jedoch lässt sich der graue Klotz auch anders beseitigen. Das Stichwort heißt Javascript. Über die dort enthaltenen “Event handling” Mechanismen lässt sich in so machen Bereichen Funktionalität nachrüsten bei der Adobe gepatzt hat. So auch hier, es ist nämlich möglich das Rechtsklick Event der Maus für ein HTML Element wie z.B. einen <div> abzufangen.

Die Vorgehensweise ist nun folgende:

  1. Es wird Javascript (RightClick.js) eingebunden um in der HTML Seite das Rechtsklick Ereignis abzufangen.
  2. Das abgefangene Ereignis wird über External Interface an Flash weitergereicht.
  3. Flash führt als Reaktion auf das Ereignis die gewünschten Aktionen aus.

Als basis für das Javascript wurde folgendes Google Code Projekt benutzt:
http://code.google.com/p/custom-context-menu/

Leider ist es so dass in der ursprünglichen RightClick.js nur das “onMouseUp” Ereignis unterstützt wurde, d.h. es war in Flash keine Unterscheidung möglich ob nun die rechte Maustaste gedrückt ist oder nicht. Daher habe ich die RightClick.js kurzerhand so erweitert dass sie nun zwei Ereignisse in Flash auslöst, nämlich “rightMouseDown” und “rightMouseUp”.

Leave a Reply