AS3 TextEvent使用时需要注意的地方
2012-07-19 23:40
260 查看
TextEvent很有意思,就两个常量,应用场景还截然不同。
TEXT_INPUT:用户输入文本时调用
此时: TextEvent.text:返回用户输入的内容
还有一个类似的用法,是Event.Change。让我们比较一下两者的区别:
1. 触发范围不同
TEXT_INPUT:输入文本时触发。
CHANGE:文本字符发生变化时触发。所以不仅输入文本会触发,删除文本也会触发。
2. 触发时间不同
TEXT_INPUT:在文本填充字符之前先触发
CHANGE:在文本填充字符完成后触发
我举个例子大家就明白意思了:在舞台上创建一个输入文本,实例名为t,在第一帧添加代码如下:
function p1(event:Event):void {
trace(event.type+":"+event.target.text);
}
t.addEventListener(Event.CHANGE, p1);
function p2(event:TextEvent):void {
trace(event.type+":"+event.target.text);
}
t.addEventListener(TextEvent.TEXT_INPUT, p2);
运行后,输入字符“w”,返回结果如下:
textInput: //此时t还没有内容
change:w //此时t已经有内容了
最后说一下TextEvent.text的返回值:
每输入一次字符,将会调用一次函数。你直接输入“my”,那么依次返回“m”“y”。你输入“我们”,即使某些输入法可以修改后一起输入,但还是依次返回“我”“们”。只有一种情况例外:如果你是复制粘帖上去的“我们”,恭喜你,你终于一次性返回了“我们”二字。
TEXT_LINK:启用 HTML 的文本字段中,单击超链接时触发
此时:TextEvent.text:<a> 标签的 href 属性的 event 属性的文本(很拗口吧 ^_^)
例如:
messages.htmlText = "<a href=\"event:http://www.baidu.com\">22</a>";
那么TextEvent.text返回的是“http://www.baidu.com”
注意:
1. 必须要有“event:”不然该监听无效
2. 因为加了“event:”,所以超链接无效了,不会发生页面跳转。
如果一定要跳转,自己加个处理吧,我把我的代码贴出来,仅供参考:
messages.htmlText = "<a href=\"event:http://www.baidu.com\">百度链接</a>";
function p(event:TextEvent):void
{
var url:URLRequest = new URLRequest(event.text);
navigateToURL(url); //AS3.0后,GetURL方法不适用了
}
messages.addEventListener(TextEvent.LINK, p);
本文出自 “寂寞风之谷” 博客,请务必保留此出处/article/7349375.html
TEXT_INPUT:用户输入文本时调用
此时: TextEvent.text:返回用户输入的内容
还有一个类似的用法,是Event.Change。让我们比较一下两者的区别:
1. 触发范围不同
TEXT_INPUT:输入文本时触发。
CHANGE:文本字符发生变化时触发。所以不仅输入文本会触发,删除文本也会触发。
2. 触发时间不同
TEXT_INPUT:在文本填充字符之前先触发
CHANGE:在文本填充字符完成后触发
我举个例子大家就明白意思了:在舞台上创建一个输入文本,实例名为t,在第一帧添加代码如下:
function p1(event:Event):void {
trace(event.type+":"+event.target.text);
}
t.addEventListener(Event.CHANGE, p1);
function p2(event:TextEvent):void {
trace(event.type+":"+event.target.text);
}
t.addEventListener(TextEvent.TEXT_INPUT, p2);
运行后,输入字符“w”,返回结果如下:
textInput: //此时t还没有内容
change:w //此时t已经有内容了
最后说一下TextEvent.text的返回值:
每输入一次字符,将会调用一次函数。你直接输入“my”,那么依次返回“m”“y”。你输入“我们”,即使某些输入法可以修改后一起输入,但还是依次返回“我”“们”。只有一种情况例外:如果你是复制粘帖上去的“我们”,恭喜你,你终于一次性返回了“我们”二字。
TEXT_LINK:启用 HTML 的文本字段中,单击超链接时触发
此时:TextEvent.text:<a> 标签的 href 属性的 event 属性的文本(很拗口吧 ^_^)
例如:
messages.htmlText = "<a href=\"event:http://www.baidu.com\">22</a>";
那么TextEvent.text返回的是“http://www.baidu.com”
注意:
1. 必须要有“event:”不然该监听无效
2. 因为加了“event:”,所以超链接无效了,不会发生页面跳转。
如果一定要跳转,自己加个处理吧,我把我的代码贴出来,仅供参考:
messages.htmlText = "<a href=\"event:http://www.baidu.com\">百度链接</a>";
function p(event:TextEvent):void
{
var url:URLRequest = new URLRequest(event.text);
navigateToURL(url); //AS3.0后,GetURL方法不适用了
}
messages.addEventListener(TextEvent.LINK, p);
本文出自 “寂寞风之谷” 博客,请务必保留此出处/article/7349375.html
相关文章推荐
- (AS3)在循环语句for、for each、while等语句中使用闭包需要注意的地方
- [APP开发技巧] 关于对象、数字、地理位置使用上需要注意的地方
- 使用索引需要注意的地方
- iOS中使用iCloud一些需要注意的地方(Xcode7.2)
- 使用Java中的final变量需要注意的地方。
- JSP中使用Spring注入的Bean时需要注意的地方
- 在PostgreSQL中使用日期类型时一些需要注意的地方
- js中使用split方法需要注意的地方
- Mysql分区表使用的一些限制和需要注意的地方
- margin-top使用需要注意的地方
- Oracle分析函数model使用时需要注意的几个地方(一)
- HttpURLConnection使用中需要注意的地方
- C++ Exceptional 有关auto_ptr使用需要注意的地方
- 对于使用equals 需要注意的一处地方
- 关于Stm8库函数使用需要格外注意的地方
- 从Check Point 官网使用Google Chrome 下载补丁需要特别注意的地方
- 使用jquery的ajax需要注意的地方dataType的设置
- C++使用localtime函数需要注意的地方
- sildingdraw的使用和需要注意的地方
- Android 使用Html.fromHtml需要注意的地方