Actionscript 3 冒泡的对象或属性?
我有一个冒泡事件,它激活根类中的一个事件。我从根类添加了一个对象,该对象希望使用激活冒泡事件的对象的属性。我使用以下代码执行此操作:Actionscript 3 冒泡的对象或属性?,actionscript-3,events,event-bubbling,Actionscript 3,Events,Event Bubbling,我有一个冒泡事件,它激活根类中的一个事件。我从根类添加了一个对象,该对象希望使用激活冒泡事件的对象的属性。我使用以下代码执行此操作: public function addInfoWindow(e:Event):void { dockTarget = e.target as DisplayObject; infoWindow = new InfoWindow(); addChild(infoWindow); infoWindow.setContent(dockTa
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传递时,目标对象变成静态的
那么,有没有其他方法可以对对象或其属性进行冒泡呢?或者是否有其他方法可以实现此效果?将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);
}
您可能需要检查dockTarget是否是您期望的对象。另外,您将eventlistener添加到哪里?如果是dockTarget,也许你想使用e.currentTarget?你可能想用dockTarget.hasOwnProperty(“u id”)检查dockTarget是否有属性id等。它得到了正确的对象,并且有属性id。不过我最终解决了这个问题。我没有使用displayObject,而是使用object。当强制转换到
对象
时,就像强制转换到MovieClip
一样,如果e.target
是一个类,通常最好先通过如果(e.target是一个类){…}
查询它的类型,这样您就可以访问OneClass
类的属性,等等。如果您扩展的不是MovieClip
,例如,如果您不需要使用本地时间线,那么这种方法尤其有效。