【发布时间】:2013-08-16 14:04:32
【问题描述】:
我有一个冒泡事件,它激活了根类中的一个事件。从根类中,我添加了一个对象,该对象想要使用激活冒泡事件的对象的属性。我用这段代码来做这个:
public function addInfoWindow(e:Event):void
{
dockTarget = e.target as DisplayObject;
infoWindow = new InfoWindow();
addChild(infoWindow);
infoWindow.setContent(dockTarget.x, dockTarget.y, dockTarget._id, dockTarget._name, dockTarget._description);
}
x 和 y 值可以很好地传递,但使用属性 _id、_name 和 _description 我会得到“通过静态类型 DisplayObject 的引用访问可能未定义的属性 _id”。错误。
我假设当我将事件目标作为 displayObject 传递时,目标对象变为静态。
那么还有另一种方法可以使对象或其属性冒泡吗?或者有没有其他方法可以达到这个效果?
【问题讨论】:
-
您可能需要检查 dockTarget 是否是您期望的对象。另外,你在哪里添加你的事件监听器?如果是dockTarget,也许你想使用e.currentTarget?
-
你可能想用dockTarget.hasOwnProperty('_id')检查dockTarget是否有属性_id等
-
它得到了正确的对象并且它具有属性_id。不过我终于解决了。我没有使用 displayObject,而是使用了 object。
标签: actionscript-3 events event-bubbling