我在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