Apache flex ActionScript/Flex:使用额外信息扩充MouseEvents

Apache flex ActionScript/Flex:使用额外信息扩充MouseEvents,apache-flex,actionscript,Apache Flex,Actionscript,我有一个业务类Spam和相应的视图类SpamView 如何增强SpamView中的MouseEvents,使其包含对SpamView显示的垃圾邮件实例的引用 下面是我想如何使用它: class ViewContainer { ... for each (spam in spams) { addChild(new SpamView(spam)); ... function handleMouseMove(event:MouseEve

我有一个业务类Spam和相应的视图类SpamView

如何增强SpamView中的MouseEvents,使其包含对SpamView显示的垃圾邮件实例的引用

下面是我想如何使用它:

class ViewContainer {
    ...
        for each (spam in spams) {
            addChild(new SpamView(spam));
    ...

    function handleMouseMove(event:MouseEvent) {
        if (event is SpamViewMouseEvent)
            trace("The mouse is being moved over spam:", spam)
    }
}
谢谢

我考虑过的不起作用的事情:

向每个SpamView添加事件侦听器:簿记确保它们被正确添加/删除是一件痛苦的事情

使用event.target:事件的目标可能是SpamView的子级,这不是很有用

监听MouseEvent,创建一个新的SpamViewMouseEvent,复制所有字段,然后分派:手动复制所有字段也是一件痛苦的事情


有多种方法可以解决这个问题。我会使用你的2选项,但是构建一个实用函数,在屏幕上获取所有spamViews,并在spamViews上循环执行几个if-else

var targ:DisplayObject=DisplayObjectevent.target

如果arg是SpamView//那么你知道怎么回事了

如果loopedSpamView.containstarg//,则目标位于spamViewContainer中,您应该保持冷静

祝你好运, 杰里米