此代码抛出错误:
if (modalMessage != null && contains(modalMessage))
{
removeChild(modalMessage); // the error is here
modalMessage = null;
}
Run Code Online (Sandbox Code Playgroud)
错误是:
[Fault] exception, information=ArgumentError: Error #2025: The supplied DisplayObject must be a child of the caller.
Run Code Online (Sandbox Code Playgroud)
怎么会这样?我正在检查它是否是一个孩子.
contains()如果主题是调用者的后代,则返回true.对于间接后代,儿童的孩子等也会如此.
确定指定的显示对象是DisplayObjectContainer实例的子项还是实例本身.搜索包括整个显示列表,包括此DisplayObjectContainer实例.孙子,曾孙等等都归于真实.
您可以检查父母:
if(modalMessage && modalMessage.parent && modalMessage.parent == this)
Run Code Online (Sandbox Code Playgroud)
或者,对于更通用的处理解决方案:
if(modalMessage) {
if(modalMessage.parent) DisplayObjectContainer(modalMessage.parent).removeChild(modalMessage);
modalMessage = null;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
123 次 |
| 最近记录: |