플래시로 게임을 만들었습니다. 게임의 특성상 Flash CS4에서 많은 무비 클립을 수동으로 스테이지에 배치했습니다. 그들은 프로그래밍 방식으로 무대에 자식으로 추가되지 않으므로 문서 클래스에서 액세스 할 수 없습니다. 지금까지 내가 사용할 수 있었던 유일한 방법은 stage.addChild(active_area);
(예를 들어)을 수행하는 것이지만 매우 다른 이름의 많은 동영상 클립이 있으므로이 방법이 올바르지 않은 것처럼 보입니다.이미 문서 클래스의 무대에있는 MovieClip 인스턴스에 액세스 하시겠습니까?
내 무비 클립이 단계의 아이들이없는 것을 발견했지만, 때 for
루프 stage.getChildAt(i);
을 통해 같은 사실 MainTimeline
에, 단 하나의 아이, root1
는 밖으로 추적한다.
문서 클래스의 타임 라인에서 스테이지에 배치 된 무비 클립에 무비에 직접 추가 할 필요없이 무비 클립에 어떻게 액세스 할 수 있습니까?
[편집]
그래서 내 문제는 내가 내가 무비 클립 '값을 수정되지 않았 음을했다, 영화 클립에 액세스 할 수없는 것처럼 보이는, 그래서 년후 변경 사항을 등록하지 않아야합니다. I가 고정 후 여기
코드이다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.getChildAt(i)
전에 I를 사용 stage.numChildren;
의하면, 타임 라인이었다 그 아이를 수정 이였다. 이로 인해 무대에서 다른 모든 무비 클립의 효과가 나타났습니다. 그래서 나는 y
값이 변경되었다는 가정하에 있었지만, 그렇지 않았습니다. 따라서 조건에 맞는 트리거가 없었기 때문에 내가 생각한 환상을 들려주지 못했습니다. MovieClips에 액세스 할 수 없습니다. 아래 답변에서 패키지에서 권장하는대로 stage
을 this
으로 변경하면 문제가 해결되었습니다.
그의 대답이 내 문제를 해결했기 때문에 답을 주었지만, 일단 stage.numChildren (i) 대신'this.numChildren (i)'을 반복하기 시작 했더니 응답이 효과가 있었기 때문에 나는 당신을지지했다. . – BumbleShrimp
걱정할 필요가 없습니다! 행운을 빌어 요, 죄송합니다. 이전에 질문을 upvote하는 것을 잊어 버렸습니다. –