Flash Player 10中关于TextField的textInput与change事件行为的改变
偶尔发现原来写的打字测试有问题了,仔细研究了一下,发现是FlashPlayer的原因。
打字游戏中,对文字输入正确与否的判断,我采用的是TextField的textInput事件和change事件。问题就出在这里:将FlashPlayer升级到10以后,这两个事件的行为发生了改变。
在FlashPlaye r10以前,如果在TextField中输入整句的文字,文字有多少个,textInput事件和change事件就会发生多少次。而对于FlashPlayer来说,则是不论文字有多少个,只要是一次输入的,就只会发生一次。这种情况对于英文来说倒是无所谓,但对于中文来讲,由于常用的是词语输入,就会有很大影响。看下面的代码:
type.mxml
1<?xml version="1.0" encoding="utf-8"?>
2<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
3 <mx:TextArea textInput="textInput(event)" change="change(event)" width="100%" height="100%"/>
4 <mx:Script>
5 <![CDATA[
6 private function textInput(evt:TextEvent):void
7 {
8 trace(evt.text, evt.target.length);
9 }
10
11 private function change(evt:Event):void
12 {
13 trace(evt.target.text, evt.target.length);
14 }
15 ]]>
16 </mx:Script>
17</mx:Application>
以输入“白日依山尽”(整句输入)为例,在FlashPlayer 9中,trace的信息如下:
白 0
白 1
日 1
白日 2
依 2
白日依 3
山 3
白日依山 4
尽 4
白日依山尽 5
在FlashPlayer 10中,trace的信息如下:
白日依山尽 0
白日依山尽 5
- 文章ID:557
- 原文作者:zrong
- 原文链接:https://blog.zengrong.net/post/flash-player-10-textfield-textinput-change/
- 版权声明:本作品采用 署名-非商业性使用-相同方式共享 4.0 国际 (CC BY-NC-SA 4.0) 进行许可,非商业转载请注明出处(原文作者,原文链接),商业转载请联系作者获得授权。