0

我有一个冒泡事件,它激活了根类中的一个事件。从根类中,我添加了一个对象,该对象想要使用激活冒泡事件的对象的属性。我用这段代码做到这一点:

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 传递时,目标对象变为静态。

那么还有另一种方法可以使对象或其属性冒泡吗?或者有没有其他方法可以达到这种效果?

4

1 回答 1

0

不要将 e.target 作为 DisplayObject 传递,而是将其作为 Object 传递。

public function addInfoWindow(e:Event):void
{
    dockTarget = e.target as Object;
    infoWindow = new InfoWindow();
    addChild(infoWindow);
    infoWindow.setContent(dockTarget.x, dockTarget.y, dockTarget._id, dockTarget._name, dockTarget._description);
}
于 2013-08-16T14:26:03.077 回答