将焦点设置在WebBrowser控件中托管的Flash对象上

时间:2010-07-05 16:19:34

标签: c# flash browser

我在这里和Google一起搜索过,但我找不到答案。我们的应用程序使用WebBrowser控件向用户显示SWF Flash对象。这适用于鼠标,但有些部署只有带箭头键的遥控器。 问题是Flash对象加载时

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

Flash对象没有焦点,因此箭头键不起作用。按键盘上的Tab键可以将焦点放在Flash对象上,然后键可以工作,但这对遥控器无效。 有没有人想过如何让Flash文件在加载后接受箭头键控制?

感谢。

1 个答案:

答案 0 :(得分:0)

我根本不知道Flash,但我猜你可以在Javascript中处理某种事件,表明Flash对象已加载。例如,在Silverlight中,您可以提供一个在加载Silverlight控件后调用的JavaScript“回调”。

以下是我的blog中的一些代码,它显示了我对Silverlight的意思,希望您可以将其转换为Flash等效。

1-为网页中的元素提供ID

2-传递Silverlight应用程序上的'onLoad'参数,分配一个JavaScript功能,该功能将重点关注浏览器中的应用程序。

<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-最后编写加载Silverlight应用程序时调用的JavaScript函数

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

更新:找到以下可能有用的链接

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

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