target的运用
本文介绍一下target的运用。今天一位AS3学友问到如何实现如下效果:点击舞台中的一个按钮,出来“对”,如果点击的是按钮以外的区域,出来“错”。看到他的这个问题,我的第一反应是用舞台来侦听点击事件,并用条件语句对此时鼠标的位置进行检测,如果正好在按钮所在的位置,就显示“对”,否则就显示“错”。我虽然没有尝试,但感觉这个思路应该是可行的,只是这里把按钮纯粹当成了摆设,另外感觉方法也显得繁琐了一些。
他也觉得这个方法有点麻烦,提出:有没有现成的方法,可以直接检测鼠标点击的是按钮还是按钮以外的地方。我忽然想起了以前写过一篇《target与currentTarget有什么区别》,把这篇文章翻出来看了下,问题解决了,代码是这样的:
_txt.autoSize=TextFieldAutoSize.CENTER;
stage.addEventListener(MouseEvent.CLICK,onClick);//用舞台监听
function onClick(e) {
if (e.target==_btn) {//如果点在了按钮上,则事件目标target就是按钮
_txt.text="对";
} else {
_txt.text="错";//没有点在按钮上
trace(e.target);
//如果点在舞台上,输出:[object Stage]
//如果点在了动态文本上,输出:[object TextField]
}
}
下面是测试效果的swf文件:
2条评论 ▼