2012-07-10 1 views
0

Lorsque "wmode" est activé et qu'un utilisateur joue à un jeu Flash nécessitant des touches fléchées, dans Internet Explorer, la fenêtre du navigateur se déplace également. Apparemment, le seul moyen de contourner cela est d'enlever le 'wmode'. Mais, si le 'wmode' est supprimé, le jeu Flash monte au sommet de l'ordre d'empilement et tous les autres éléments comme les bannières extensibles ou les menus déroulants . Aucune quantité d'iFrames ou de CSS ne résout ce problème.Flash 'wMode', AS3, flèche sur Internet Explorer, ordre d'empilement et une solution possible

J'ai trouvé une solution qui permet au 'wmode' de rester, tout en permettant au jeu Flash d'avoir le focus du clavier une fois cliqué et donc la fenêtre du navigateur Internet Explorer ne bouge pas. Cette solution signifie que d'autres éléments Dom peuvent aller au-dessus du Flash.

J'ai mis le code AS3 ci-dessous dans un exemple simple et cela semble fonctionner. Il met fondamentalement un scrollPane dans le contenu, puis cela devient invisible. En tant que développeur PHP et non développeur AS3, je me demande si les développeurs AS3 peuvent voir un problème ou un impact négatif en plaçant le code ci-dessous dans un jeu Flash/AS3. De même, cela pourrait-il fonctionner dans AS2?

beaucoup apprécié

_scrollPane = new ScrollPane(); 
_scrollPane.setSize(stage.stageWidth, stage.stageHeight); 
_scrollPane.horizontalScrollPolicy = ScrollPolicy.OFF; 
_scrollPane.verticalScrollPolicy = ScrollPolicy.OFF; 
_scrollPane.alpha=0; 
stage.addChild(_scrollPane); 
+0

Cela ne me semble pas une réponse, donc le mettre ici: J'aime votre solution. J'ai fait face à un problème similaire lors de l'implémentation de la navigation au clavier, et je n'ai jamais résolu le problème. Je ne pense pas que cela fonctionnera dans AS2. Le seul détriment que je peux voir est d'ajouter des éléments d'interface à l'écran qui ne sont jamais visibles, mais puisqu'ils résolvent le problème, il n'y a aucun avantage à en tirer profit :) –

+0

Merci Sunil Je suis d'accord que l'ajout d'un composant invisible de l'interface utilisateur pourrait être préjudiciable mais permet le contrôle des touches fléchées tout en assurant que l'ordre d'empilement reste dans le Dom. Ce que je n'ai pas encore testé, c'est si le scrollPane entrave l'interaction de la souris avec les clips. Une chose à noter est que l'accent est perdu une fois qu'un onglet de navigateur différent est visité, puis l'utilisateur revient à l'original. Il ne peut être récupéré qu'en rechargeant la page. Ce serait évidemment très ennuyeux pour quelqu'un en plein milieu d'une partie. – SimonPeacock

+0

Cependant, après quelques recherches et tests, c'est la seule solution qui semble résoudre les deux problèmes dans Internet Explorer. Appréciez votre opinion et bienvenue plus :-) – SimonPeacock

Répondre

0

Après un peu plus de tests il semble que ce n'est pas réaliste une option viable. Bien que le fichier SWF obtienne un focus une fois cliqué et que les sprites nécessitant un contrôle par touches fléchées puissent être déplacés sans affecter la fenêtre du navigateur, il est impossible de cliquer ou de faire glisser l'interaction avec les sprites en raison de l'index enfant du scrollPane.

J'ai joué avec la pré-version d'IE10 et il semble que peu importe l'état dans lequel le wMode est laissé (ou supprimé), la fenêtre du navigateur est toujours affectée par l'interaction de la touche fléchée avec le swf. Si quelqu'un d'autre a rencontré ce problème ou a trouvé une réponse, il serait grandement apprécié.