[英]actionscript-3: check if movieClip exists
我有一個使用以下代碼創建的動畫片段:
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);
}
stage.addChild (thumbContainer);
//...
if (this.getChildByName("thumbContainer") != null)
您正在將thumbContainer
添加到stage
並使用this
檢查它的存在。 修改stage
,以this
或this
對stage
。
也就是說,一種更合適的方法是保留對添加的影片剪輯的引用,並使用contains方法檢查是否存在。 它確定指定的顯示對象是DisplayObjectContainer
實例的子級還是實例本身。 搜索包括整個顯示列表,包括該DisplayObjectContainer
實例,孫子孫,曾孫子孫等等。
因此,您可以使用stage.contains(thumbContainer);
輕松檢查stage.contains(thumbContainer);
如果您在發射錯誤時遇到麻煩,可以隨時嘗試使用
try{
/// do something that will blow up...
}catch( e:Error ){
trace( "we had an error but its not fatal now..." );
}
問題是“舞台”和“這個”不一樣……這就是為什么我不能和MC交談的原因。 這有效:
var thumbContainer:MovieClip = new MovieClip();
thumbContainer.name = "thumbContainer";
addChild (thumbContainer);
if (getChildByName("thumbContainer") != null) {
trace("exists")
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.