我创建了一个用以下代码创建的电影:
var thumbContainer:MovieClip = new MovieClip();
thumbContainer.name = "thumbContainer";
stage.addChild (thumbContainer);如果窗口变大/变小,我要把所有东西都放回原处。所以我有一个舞台事件听者。现在我想看看这个mc是否存在以恢复原状。我尝试过不同的方法,但是不断地得到一个不存在的错误。
1120:未定义属性thumbContainer.的访问
if (this.getChildByName("thumbContainer") != null) {
trace("exists")
}和
if ("thumbContainer" in this) {
trace("exists")
}或
function hasClipInIt (mc: MovieClip):Boolean {
return mc != null && contains(mc);
}发布于 2010-02-17 17:08:41
stage.addChild (thumbContainer);
//...
if (this.getChildByName("thumbContainer") != null) 您正在将thumbContainer添加到stage中,并使用this检查它是否存在。将stage更改为this或将this更改为stage。
也就是说,更合适的方法是保留对添加的电影剪辑的引用,并使用包含方法检查是否存在。它确定指定的显示对象是DisplayObjectContainer实例的子实例还是实例本身。搜索包括整个显示列表,包括这个DisplayObjectContainer实例、孙辈、曾孙等等。
因此,您可以轻松地使用stage.contains(thumbContainer);进行检查。
发布于 2010-02-23 17:34:40
如果您在触发错误时遇到困难,则可以随时尝试捕捉。
try{
/// do something that will blow up...
}catch( e:Error ){
trace( "we had an error but its not fatal now..." );
}发布于 2010-02-18 00:06:54
问题是‘舞台’和‘这’是不一样的.这就是为什么我不能和主持人说话。这样做是可行的:
var thumbContainer:MovieClip = new MovieClip();
thumbContainer.name = "thumbContainer";
addChild (thumbContainer);
if (getChildByName("thumbContainer") != null) {
trace("exists")
}https://stackoverflow.com/questions/2282657
复制相似问题