AS3中从子级到父级的触发事件

发布于 2024-12-13 09:28:15 字数 554 浏览 0 评论 0原文

我有一个 MovieClip,其中包含与 CLICK 事件关联的 MouseEvent 函数。在这个 MovieClip 里面我有一个 TextField。

因此,当我单击 MovieClip 时,处理程序工作正常。现在,当我单击此 TextField 时,我需要相同的行为,但不更改我的处理程序函数。我的意思是,如果用户单击 TextField 而不是 MovieClip,我不想将 e.target 更改为 e.target.parent

我该怎么做?

我的一些源代码:

public function Main(){
   var m = new menu();
   menuMng.addChild(m);
   m.addEventListener(MouseEvent.CLICK, openMenu);
}

private function openMenu(e:MouseEvent):void{
   // Do some stuff
}

提前致谢!

I have a MovieClip with a MouseEvent function associated to CLICK event. Inside of this MovieClip I have a TextField.

So, when I click on my MovieClip, the handler works fine. Now I need the same behaviour when I click on this TextField, but without change my handler function. I mean, I don't want to change e.target to e.target.parent if user clicked on TextField instead of MovieClip.

How can I do this?

Some of my source code:

public function Main(){
   var m = new menu();
   menuMng.addChild(m);
   m.addEventListener(MouseEvent.CLICK, openMenu);
}

private function openMenu(e:MouseEvent):void{
   // Do some stuff
}

Thanks in advance!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一个人的旅程 2024-12-20 09:28:15

这是一个相当常见的问题 - 您可以使用 event.currentTarget 属性而不是 event.target 来引用添加了事件侦听器的对象。

要获得更详细的答案,请查看这个问题(不要担心它的 Flex 方面 - 这与标准 Actionscript 3 行为有关):
flex中的target和currenttarget有什么区别?< /a>

This is a fairly common question - you can use the event.currentTarget property instead of event.target to reference the object to which you added the event listener.

For a more detailed answer check out this question (don't worry about the Flex aspect of it - this relates to standard Actionscript 3 behaviour):
What is the difference between target and currenttarget in flex?

霊感 2024-12-20 09:28:15

您可以解决在 MovieClip m 上将 mouseChildren 属性设置为 false 的问题。在这种情况下,单击文本字段将触发 MouseEvent,就像用户单击 m 一样。
为了清楚起见:

var m = new menu();
m.mouseChildren = false;
...

我希望这对您有用!

You can fix problem setting mouseChildren property to false on MovieClip m. In this case click on textfield will trigger MouseEvent like if user click on m.
For clarity:

var m = new menu();
m.mouseChildren = false;
...

I hope this will be usefull to you!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文