前几天医院突然给我说医院的拍照功能,拍完照片后不能输入汉字了....我在自己的本上测试了下有没问题 ,但医院的电脑就是拍完照片后就是不能输入汉字...
上图....
看看了不是程序的问题,是FLex拍照功能的swf文件有问题
照成这种问题的原因是:flash影片是存在于Windows中的一个显示实例,并且是在浏览器核心显示窗口之上的,所以flash只是貌似显示在浏览器中,但这也是flash最快最有效率的渲染模式。由于他是独立于浏览器的HTML渲染表面,这就导致默认显示方式下flash总是会遮住位置与他重合的所有DHTML层。
修改步骤:
找到Camera.mxml(这是源码文件)
文件抬头有个initCamera()方法
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
minWidth="955" minHeight="600" width="290" height="245" creationComplete="initCamera()">
//初始化页面,初始化相机
public function initCamera():void
{
ExternalInterface.addCallback("savePhones", savePhones);
cam = flash.media.Camera.getCamera();
if(cam==null){
Alert.show("没有找到摄像头,是否重新查找。","提示:",Alert.OK|Alert.NO,this,__InitCamera);
return;
}else{
var video:Video = new Video();
cam.setMode(DEFAULT_CAMERA_WIDTH,DEFAULT_CAMERA_HEIGHT,30);
this.video.attachCamera(cam);
}
//这个地方加上这句话
FlexGlobals.topLevelApplication.addEventListener(MouseEvent.ROLL_OUT, setSRF);
}
在写个setSRF()方法
/**
* 当光标离开Flash时开启设置系统的输入法
* */
private function setSRF(event:MouseEvent):void{
if(Capabilities.hasIME){
try{
if(!IME.enabled){
IME.enabled=true;
}
IME.conversionMode="CHINESE";
}catch(error:Error){
}
}
}
ok 问题解决