使用工具提示时出现错误 #2025:提供的 DisplayObject 必须是调用者的子对象
Posted
技术标签:
【中文标题】使用工具提示时出现错误 #2025:提供的 DisplayObject 必须是调用者的子对象【英文标题】:When using Tooltips I'm getting an Error #2025: The supplied DisplayObject must be a child of the caller 【发布时间】:2015-08-21 03:00:07 【问题描述】:当我添加工具提示然后删除工具提示时,当我单击舞台时出现以下错误:
ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
at flash.display::DisplayObjectContainer/getChildIndex()
at mx.managers::SystemManager/http://www.adobe.com/2006/flex/mx/internal::rawChildren_getChildIndex()[C:\Jenkins\workspace\flex-sdk_release-candidate\frameworks\projects\framework\src\mx\managers\SystemManager.as:2195]
at mx.managers::SystemChildrenList/removeChild()[C:\Jenkins\workspace\flex-sdk_release-candidate\frameworks\projects\framework\src\mx\managers\SystemChildrenList.as:167]
at mx.managers::ToolTipManagerImpl/http://www.adobe.com/2006/flex/mx/internal::reset()[C:\Jenkins\workspace\flex-sdk_release-candidate\frameworks\projects\framework\src\mx\managers\ToolTipManagerImpl.as:1379]
at mx.managers::ToolTipManagerImpl/http://www.adobe.com/2006/flex/mx/internal::targetChanged()[C:\Jenkins\workspace\flex-sdk_release-candidate\frameworks\projects\framework\src\mx\managers\ToolTipManagerImpl.as:892]
at mx.managers::ToolTipManagerImpl/http://www.adobe.com/2006/flex/mx/internal::checkIfTargetChanged()[C:\Jenkins\workspace\flex-sdk_release-candidate\frameworks\projects\framework\src\mx\managers\ToolTipManagerImpl.as:797]
at mx.managers::ToolTipManagerImpl/http://www.adobe.com/2006/flex/mx/internal::toolTipMouseOverHandler()[C:\Jenkins\workspace\flex-sdk_release-candidate\frameworks\projects\framework\src\mx\managers\ToolTipManagerImpl.as:1623]
我已经尝试了我所知道的一切来摆脱它。 这是我正在使用的代码:
// adding
PopUpManager.addPopUp(rulerPopUp, SystemManager.getSWFRoot(this));
toolTipPopUp = ToolTipManager.createToolTip("HELLO", event.stageX, event.stageY) as ToolTip;
ToolTipManager.currentToolTip = toolTipPopUp;
swfRoot.addEventListener(MouseEvent.MOUSE_MOVE, mouseRulerMoveHandler, true, EventPriority.CURSOR_MANAGEMENT, true);
swfRoot.addEventListener(MouseEvent.MOUSE_UP, mouseRulerUpHandler, true, EventPriority.CURSOR_MANAGEMENT, true);
// removing
swfRoot.removeEventListener(MouseEvent.MOUSE_MOVE, mouseRulerMoveHandler, true);
swfRoot.removeEventListener(MouseEvent.MOUSE_UP, mouseRulerUpHandler, true);
if (toolTipPopUp && toolTipPopUp.stage)
ToolTipManager.destroyToolTip(toolTipPopUp);
toolTipPopUp = null;
谁能看到我收到此错误的原因?
【问题讨论】:
我想我可能已经修好了。我在toolTipPopUp = null
之前添加了ToolTipManager.currentToolTip = null;
。
【参考方案1】:
似乎将 currentToolTip 设置为 null 可以解决问题。
if (toolTipPopUp && toolTipPopUp.stage) ToolTipManager.destroyToolTip(toolTipPopUp); ToolTipManager.currentToolTip = null; // 添加了这一行 toolTipPopUp = null;
从那以后我没有发生任何错误。
【讨论】:
以上是关于使用工具提示时出现错误 #2025:提供的 DisplayObject 必须是调用者的子对象的主要内容,如果未能解决你的问题,请参考以下文章
在连接SQL Server服务器时出现这样的错误提示。求高手帮忙,如能解决,万分感谢。