Event.CHANGE,TextEvent.TEXT_INPUT

Event.CHANGE 和TextEvent.TEXT_INPUT 都是用户修改值调度,两者的主要区别是一前一后, Event.CHANGE 是在文本被改变之后调度,TextEvent.TEXT_INPUT是在文本将要加入前调度; 在文本键入前拦截有很多好处,比如我们希望文本框只能输入数字和字母,当用户键入非法字符时给予警告或提示,当然你可以使用正则,使用restrict属性来限定,可是这样提示信息就会很难处理.


txt.addEventListener(TextEvent.TEXT_INPUT,inputHandler)
function inputHandler(event:TextEvent){
        var reg:RegExp=/[^0-9A-Za-z]/g        
        if(reg.test(event.text)){
                event.preventDefault() 
                trace("非法字符:"+ event.text)
        }
}


比如打字练习软件,不允许使用粘贴,只需要象下面这样,无论右键的粘贴,还是Ctrl+V,都可以有效拦截.(指的是大量的文本的粘贴)
其它功能还有很多...


txt.addEventListener(TextEvent.TEXT_INPUT,inputHandler)
function inputHandler(event:TextEvent){        
        if(event.text.length>1)//如果练习的是中文4-8就差不多了
                event.preventDefault()         
}


CHANGE不是任何方式改变文本内容都会触发的。必须是用户操作才会触发,代码赋值是不会触发CHANGE事件的


// preventDefault 只有是cancelable为true才可以生效例如text_input可以,TextEvent.LINK就不行


// dispatchEvent和preventDefault的配合使用
import flash.events.Event;


this.addEventListener("qq",qq);


if(this.dispatchEvent(new Event("qq",false,true))) // 设置cancelable为true,默认是false
{
        trace("sss")
}


function qq(evt:Event):void
{
        //如果有这句,则不会输出"sss"
        evt.preventDefault();
        
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值