2010-07-05 7 views
0

J'ai recherché ici et avec Google, mais je ne trouve pas de réponse à cette question. Notre application utilise le contrôle WebBrowser pour afficher les objets Flash SWF aux utilisateurs. Cela fonctionne très bien avec la souris, mais certains déploiements ont seulement un contrôle à distance avec des touches fléchées. Le problème est que lorsque les charges d'un objet FlashDéfinir le focus sur l'objet Flash hébergé dans un contrôle WebBrowser

WebBrowser.Navigate("c:\mypath\myflashfile.swf"); 

l'objet Flash n'a pas le focus de sorte que les touches fléchées ne fonctionnent pas. Appuyer sur la touche Tab du clavier permet de mettre l'accent sur l'objet Flash, puis les touches fonctionnent mais cela ne fonctionnera pas avec la télécommande. Quelqu'un at-il des idées sur la façon d'obtenir le fichier Flash pour accepter le contrôle de la touche fléchée une fois qu'il est chargé?

Merci.

Répondre

0

Je ne sais pas Flash du tout, mais je suppose qu'il existe un type d'événement que vous pouvez gérer en Javascript qui indique que l'objet Flash est chargé. Par exemple, dans Silverlight, vous pouvez fournir un "callback" JavaScript qui est appelé une fois le contrôle Silverlight chargé.

Voici un code de mon blog qui montre ce que je veux dire dans le cas de Silverlight, j'espère que vous pouvez traduire cela en équivalent Flash.

1- Donner l'élément dans la page Web d'un ID

2- Faire passer le paramètre « onLoad » sur l'application Silverlight assigner une fonction JavaScript qui se concentrera à l'application dans le navigateur.

<object id="silverlightControl" data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 
    <param name="source" value="ClientBin/DragSnapDemo.xap"/> 
    <param name="onError" value="onSilverlightError" /> 
    <param name="onLoad" value="silverlightControlHost_Load" /> 
    <param name="background" value="white" /> 
    <param name="minRuntimeVersion" value="3.0.40624.0" /> 
    <param name="autoUpgrade" value="true" /> 
    <a href="http://go.microsoft.com/fwlink/?LinkID=149156&v=3.0.40624.0" style="text-decoration:none"> 
    <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style:none"/> 
    </a> 
</object> 

3- Enfin écrire la fonction JavaScript qui est appelée lorsque l'application Silverlight a être chargé

function silverlightControlHost_Load(sender, args) 
{ 
    var control = document.getElementById("silverlightControl"); 
    control.focus(); 
} 

Mise à jour: Trouvé les liens suivants qui pourraient être utiles

http://kb2.adobe.com/cps/155/tn_15586.html

http://www.actionscript.org/forums/archive/index.php3/t-120307.html

+0

Merci pour votre réponse, Je n'ai probablement pas donné assez de détails. L'objet Flash n'est pas hébergé sur une page Web. L'URL du fichier SWF est définie directement sur le contrôle WebBrowser. Cela dit, je pourrais utiliser InvokeScript pour écrire du javascript. Deuxièmement, mettre l'accent sur l'objet Flash ne semble pas suffisant. Je dois me concentrer sur un élément de Flash et je n'arrive pas à le faire. Le fichier Flash SWF est une tierce partie et hors de notre contrôle. – Phill

+0

@Phill, je suis désolé je ne peux pas fournir plus d'informations, comme je l'ai dit je n'ai aucune connaissance de flash, j'espérais juste que les infos SL pourraient vous aider dans la bonne direction. –

Questions connexes