Walter71: Focus zwischen HTML & Flash-Objekt wechseln

Hallo!

Ich habe folgendes Problem:
Ich habe ein Flash-Objekt auf einer HTML-Seite. Während der focus auf dem Flash-Objekt is, möchte ich die Pfeil-Tasten nutzen.
Doch wenn ich 'Enter' drücke, möchte ich den Focus vom Flash-Objekt wegebewegen - auf den HTML-Teil.
Weiterhin, wenn der Focus auf den HTML-Teil ist, möchte mit Hilfe einer anderen Taste ('Enter' oder 'Tab') den Focus wieder zurück auf das Flash-Objekt bewegen.

Ist das überhaupt möglich? Ich habe mir dazu folgenden Code ausgedacht, aber aus unerfindlichen Gründen scheint das nicht zu funktionieren ;)

Hier der wichtige Teil meines Skripts:

function focusFlash() {
 document.getElementById("myContent").focus();
}

function focusMenu() {
 document.getElementById('myMenu').focus();
}

function handleKeyPress(e) {
 var nKey=e.which;

if(nKey == KEY_ENTER) {
  focusMenu();
 }
 else if(nKey == KEY_TAB){
  focusFlash();
 }
 return false;
}

document.onkeydown = handleKeyPress;
-->
</script>
<script type="text/javascript">

var vars = {};
var params = { scale:"noscale", allowscriptaccess:"always" };
var attributes = {};

swfobject.embedSWF("flash_test.swf", "myContent", "1280", "100%", "7.0.0", vars, params, attributes);

swfobject.addLoadEvent(focusFlash);
</script>

Besten Dank schonmal!!!

  1. Wenn der Focus auf dem Flash liegt, wird der keydown-Handler vermutlich nciht feuern - aber der Flash-Film wird diese Tastendrücke verarbeiten können und möglicherweise den Fokus durch einen JavaScript-Aufruf von sich auf ein HTML-Element versetzen können.

    function focusMenu() {
    document.getElementById('myMenu').focus();

    Was für ein Element ist myMenu und hat es überhaupt eine focus-Methode?

    function handleKeyPress(e) {
    var nKey=e.which;

    Dieser Zugriff auf das Event-Objekt und dessen Eigenschaft which funktioniert nicht browserübergreifend.

    Mathias

    1. Vielen Dank!
      Ich habe gehofft, dass ich nich weiter am Flash-Objekt arbeiten brauche.

      function focusMenu() {
      document.getElementById('myMenu').focus();

      Was für ein Element ist myMenu und hat es überhaupt eine focus-Methode?

      Es ist ein <div> Element.

      function handleKeyPress(e) {
      var nKey=e.which;

      Dieser Zugriff auf das Event-Objekt und dessen Eigenschaft which funktioniert nicht browserübergreifend.

      Es braucht auch nur auf dem FireFox zu funktionieren :)

      1. Es ist ein <div> Element.

        div-Elemente lassen sich (sofern tabindex="0" nicht gesetzt ist) nicht fokussieren, es existiert keine focus-Methode. Wie stellst du dir das vor? Willst du einfach »das HTML-Dokument« im Gegensatz zum Flash fokussieren?

        Mathias

        1. Wie stellst du dir das vor? Willst du einfach »das HTML-Dokument« im Gegensatz zum Flash fokussieren?

          Im Grunde genommen, ja