您的位置:首页 > 其它

关于FocusManager不大不小的一个bug

2006-09-25 23:16 351 查看
这两天做一个应用,其中用到v2组件,还有双击事件,于是碰到了一个bug.
双击事件时好时坏,感觉就是当初玩立体机时,手柄接触的不良现象..看来看去,不是双击算法的问题.
发现在按钮click之后,如果鼠标没有移动就无法再click了.....鼠标都不成手型而是普通的箭头的形状.

开始以为player发神经病了,于是找了个干净的swf测试(就一个按钮)发现一切正常....
后来发现是因为,每次出现这种情况前,都去TextInput里面输入点东西,那就把责任全怪到TextInput上了...可是最单纯的TextField也会这样.....
我还是不相信,又找了个干净的swf测试(一个按钮,一个TextField)...发现一切正常....于是,我怀疑V2组件了
又几次测试下来,发现焦点定在TextInput里面后,点击普通的按钮,鼠标按下时焦点是移出了TextInput,但是鼠标弹起时又回去了....原来是焦点问题-__-

最终,确定下来是FocusManager搞的鬼.他里面有个onMouseUp函数,在mouseUp时,如果鼠标不在v2组件上,他就把焦点设回最后一个触焦的对象上...=_=,看他的源码,实现起来颇为怪异....难道这就是老外和国人的差别??

不管,找到了病根就要找解药,哈哈..帝国2004年就有人解决了,省事省心,搞定收工

当然,如果你觉得帝国帖子里教的方法,太烦琐的话,我这里还有一招比较简单,比较黑的^^_
在第一帧加这么一句,hoho,效果一样啦~
delete _global.mx.managers.FocusManager.prototype.restoreFocus;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  测试 delete 算法