Flash wmode=transparent 与TextField不兼容的BUG

在FireFox下,当加载swf的那段<object>或<embed>里的wmode="opaque"或wmode="transparent"时,Flex TextInput和TextArea无法输入正确中文。详见此帖

 
经Google之后,很多地方说
“由Flex编译生成的那段JS,可以保证在FireFox的情况下,TextInput和TextArea可以正常输入。”
其实是错的。。。
那段脚本只是用于做Flash Player版本检测和提供deep-link功能(见官方帮助"About the wrapper")
 
在这篇文章Flash wmode=transparent breaks textinput field中,Adobe的一个工程师(John Dowdell)对这个问题作出了回应:
Asking the browser to do stuff is hard, because they all have fringe behavior.
In this case we’re asking the browser to accept plugin input directly into its own compositing stack, instead of blasting direct to screen.
Weirdest WMODE problem I’ve seen has been one where asking the browser to print the webpage would print the SWF upside down. Others have had accessibility differences.
If it’s just in Player, we can fix it ourselves. But if it’s in the communication with the browsers, it’s harder.
I’m sorry you lost time on it though. :(
 
jd/adobe
 
 
有个比较山寨的解决方法:然后一个比较山寨的方法,就是利用js监听用户的输入,然后通过js把用户的输入发给swf。 

JSTextReader

 

 

另一个山寨的解决方法,也是和JS配合。自定义了一个文本输入组件,焦点进入该组件时,利用JS在组件对应位置弹出一个对应的HTML的输入框。

http://nwhy.org/flash-swfinputs-solving-mozilla-transparent-mode.html