我在Flash中創建了一個遊戲,並且由於遊戲的性質,我在Flash CS4中手動放置了很多影片剪輯。它們不是以編程方式添加爲舞臺上的孩子,因此我無法在文檔類中訪問它們。到目前爲止,我已經能夠使用的唯一方法是做stage.addChild(active_area);
(例如),但是有很多影片剪輯,所有的命名都非常不同,所以這種方法看起來不正確。訪問已在文檔類中舞臺上的MovieClip實例?
我發現我的影片剪輯不是階段的孩子,但實際上MainTimeline
,因爲當我for
遍歷stage.getChildAt(i);
,只有一個孩子,root1
,被跟蹤了。
如何訪問從文檔類放入時間軸舞臺上的動畫片段,而無需手動將它們作爲子項添加到舞臺上?
[編輯]
所以看起來我的問題不在於我無法訪問影片剪輯,這是我沒有修改影片剪輯的價值觀,所以我沒註冊其中的任何變化。
下面是代碼後,我固定它:
function manage_cursor(e:Event):void {
prevX=currX;
prevY=currY;
currX=stage.mouseX;
currY=stage.mouseY;
var i:int;
if (currY > (stage.stageHeight/2)) {
for (i = 0; i < this.numChildren; i++) {
if (this.getChildAt(i).name!="active_area" && stage_kelp.y > kelp.min_y_mod) {
this.getChildAt(i).y-=1;
}
}
}
if (currY < (stage.stageHeight/2)) {
for (i = 0; i < this.numChildren; i++) {
if (this.getChildAt(i).name!="active_area" && this.stage_kelp.y < kelp.max_y_mod) {
this.getChildAt(i).y+=1;
}
}
}
}
的問題之前,是我被檢查stage.numChildren;
,使用stage.getChildAt(i)
和修改的孩子,這是時間軸。這給了我舞臺上所有其他動畫片段被移動的效果,所以我假設他們的y
值正在改變,但它們不是,因此,我的條件是沒有觸發,給我一個幻覺,我沒有無法訪問影片剪輯。根據以下答案中的建議,將stage
更改爲this
,爲我解決了問題。
我給出了答案,因爲他的回答解決了我的問題,但是一旦我開始循環瀏覽`this.numChildren(i)`而不是`stage.numChildren(i)``,你的答案也起作用了, 。 – BumbleShrimp 2011-12-15 17:31:13