Google Chrome浏览器下,flash输入框无法输入汉字的问题

  • Post author:
  • Post category:其他


我们在开发的一款游戏里有一个聊天室,字母数字都能输,就是不能输汉字,问题来了,就要先做自我批评,检查

code


,没发现问题,没辙了放在


IE


里,就能输入汉字,搞的真头大了,网上搜索一下,还真有了答案:

在不同的浏览器

Flash


的输入框和中文输入法配合效果是不一样的,在


Google Chrome


浏览器中有中文无法输入的情况

在找一下解决的办法,网上有人提到和

html


嵌入


flash


的标签属性


wmode


有关系,将


wmode


设置为


window


就没有问题了,经过实验发现确实可以解决问题。


在插入flash的embed或object标签中加入”wmode”属性 <param name=”wmode” value=”window”>

下面来解一下

wmode


是什么:


wmode




window mode)


即窗口模式,有


3


种模式:

1 window

模式


默认情况下的显示模式,在这种模式下

flash player


有自己的窗口句柄,这就意味着


flash


影片是存在于


Windows


中的一个显示实例,并且是在浏览器核心显示窗口之上的,所以


flash


只是貌似显示在浏览器中,但这也是


flash


最快最有效率的渲染模式。由于他是独立于浏览器的


HTML


渲染表面,这就导致默认显示方式下


flash


总是会遮住位置与他重合的所有


DHTML


层。 但是大多数苹果电脑浏览器会允许


HTML


层显示在


flash


之上,但当


flash


影片播放时会出现比较诡异的现象,比如


DHTML


层像被


flash


刮掉一块一样显示异常。

2 Opaque

模式


这是一种无窗口模式,在这种情况下

flash player


没有自己的窗口句柄,这就需要浏览器需要告诉


flash player


在浏览器的渲染表面绘制的时间和位置。这时


flash


影片就不会在高于浏览器


HTML


渲染表面而是与其他元素一样在同一个页面上


,


因此你就可以使用


z-index


值来控制


DHTML


元素是遮盖


flash


或者被遮盖。

3 Transparent

模式


透明模式,在这种模式下

flash player


会将


stage


的背景色


alpha


值将为


0


并且只会绘制


stage


上真实可见的对象,同样你也可以使用


z-index


来控制


flash


影片的深度值,但是与


Opaque


模式不同的是这样做会降低


flash


影片的回放效果,而且在


9.0.115


之前的


flash player


版本设置


wmode=”opaque”





”transparent”


会导致全屏模式失效。