使用WebBrowser控件播放Flash网页时的问题
Flash中有一些按钮,点击可以正常进行,在Flash中设置了除了点击也可以使用键盘实现操作的功能,比如(键盘的方向键).把Flash嵌入网页后鼠标点击和键盘操作都没有异常,再用WebBrowser打开网页后,鼠标点击功能正常,键盘操作无效了,请问怎么解决?
今天在Flash里面坐了按键的显示,发现除了键盘的方向键外,其他的键值都可以接收到,但是方向键无效.
第1个回答 2008-10-24
可能是webbrowser获取了你的键盘操作,因为没有定义任何的操作就 ignore了(自己定义一个操作验证一下,是不是有反应)
得把操作传递给flash
=======================
键盘的方向键也想是起到了其他的作用
用程序捕获一下方向key值 看看到底是什么
然后把这个值设置为对应的播放,停止
得把操作传递给flash
=======================
键盘的方向键也想是起到了其他的作用
用程序捕获一下方向key值 看看到底是什么
然后把这个值设置为对应的播放,停止
第2个回答 2008-10-24
我想可能是焦点的问题吧.
private void Form1_Load(object sender, EventArgs e)
{
Uri i = new Uri("");
this.webBrowser1.Url = i;
}
private void Form1_Activated(object sender, EventArgs e)
{
if(this.webBrowser1.Document!=null)
this.webBrowser1.Document.Focus();
}
每次窗体被激活的时候让webbrowser里的HTML文档获得焦点就可以解决了
-------------------------------------------------------------------
没试试我的方法?告诉你是焦点不在HTML上所引起的.既然你打开网页没问题,那显然是焦点问题,我做了个winform试验了的.
if(this.webBrowser1.Document!=null)
this.webBrowser1.Document.Focus();
主要这两句,看你加在哪吧.意思就是让你WebBrowser里的HTML页面获得焦点...只要获得焦点,快捷键就有效!
因为你用IE打开页面的话焦点本身就在页面上,所以可以直接使用快捷键.而用WebBorwser的话,焦点是在WebBorwser上而非页面上,所以快捷键无效了.
webBrowser1.Document相当于你嵌入的HTML页面的Document对象,如果你会DOM,就可以对页面进行任何操作.
还传什么参数?整那么复杂做什么!
-----------------------------------------------------------------
如果是方向键不能用的话,可能是因为你的Flash只能接收可以产生字符的按键,对于ctrl,shift,alt,esc或者方向键这样的按键不起作用了.Javascript中对于这些键,在onkeydown或者onkeyup这样的事件中是可以捕获到的,而在onkeypress这样的事件中就捕获不到了,onkeypress只能在产生一个字符的时候发生.不知道AS脚本中是不是也是有这样的事件...实在帮不了你了,问问其他高手吧.
private void Form1_Load(object sender, EventArgs e)
{
Uri i = new Uri("");
this.webBrowser1.Url = i;
}
private void Form1_Activated(object sender, EventArgs e)
{
if(this.webBrowser1.Document!=null)
this.webBrowser1.Document.Focus();
}
每次窗体被激活的时候让webbrowser里的HTML文档获得焦点就可以解决了
-------------------------------------------------------------------
没试试我的方法?告诉你是焦点不在HTML上所引起的.既然你打开网页没问题,那显然是焦点问题,我做了个winform试验了的.
if(this.webBrowser1.Document!=null)
this.webBrowser1.Document.Focus();
主要这两句,看你加在哪吧.意思就是让你WebBrowser里的HTML页面获得焦点...只要获得焦点,快捷键就有效!
因为你用IE打开页面的话焦点本身就在页面上,所以可以直接使用快捷键.而用WebBorwser的话,焦点是在WebBorwser上而非页面上,所以快捷键无效了.
webBrowser1.Document相当于你嵌入的HTML页面的Document对象,如果你会DOM,就可以对页面进行任何操作.
还传什么参数?整那么复杂做什么!
-----------------------------------------------------------------
如果是方向键不能用的话,可能是因为你的Flash只能接收可以产生字符的按键,对于ctrl,shift,alt,esc或者方向键这样的按键不起作用了.Javascript中对于这些键,在onkeydown或者onkeyup这样的事件中是可以捕获到的,而在onkeypress这样的事件中就捕获不到了,onkeypress只能在产生一个字符的时候发生.不知道AS脚本中是不是也是有这样的事件...实在帮不了你了,问问其他高手吧.
第3个回答 2008-11-10
Flash里面的方向键是没有键值的,所以获取不到本回答被提问者采纳
第4个回答 2008-10-22
class WebBrowserClass : System.Windows.Forms.WebBrowser
{
protected override void WndProc(ref System.Windows.Forms.Message m)
{
switch (m.Msg)
{
case 0x201: // WM_LMOUSEBUTTON
case 0x204:
case 0x207:
case 0x21:
base.DefWndProc(ref m);
return;
}
base.WndProc(ref m);
}
}
代码在上面。自己新建一个类继承自webbrowser.以后使用webbrowser就用这个WebBrowserClass
{
protected override void WndProc(ref System.Windows.Forms.Message m)
{
switch (m.Msg)
{
case 0x201: // WM_LMOUSEBUTTON
case 0x204:
case 0x207:
case 0x21:
base.DefWndProc(ref m);
return;
}
base.WndProc(ref m);
}
}
代码在上面。自己新建一个类继承自webbrowser.以后使用webbrowser就用这个WebBrowserClass