AS3.0에서 용기 안의 하위 대상을 삭제하는 오류를 반복합니다
<!--Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->a1.name="a1";
a2.name="a2";
a3.name="a3";
a4.name="a4";
a5.name="a5";
a6.name="a6";
var num=a.numChildren;
try{
for(var i:uint=0;i<num;i++){
a.removeChildAt(i);
}
}catch(e){}
for(var j:uint=0;j<a.numChildren;j++){
trace(a.getChildAt(j).name)
}
각각 a에 있는 하위 대상마다name 속성을 추가하고 삭제를 실행한 후 a에 존재하는 대상의name를 출력합니다.출력 결과 a2, a4, a6 발견.이것은 삭제하기 전에 깊이가 홀수인 대상이 삭제되었다는 것을 의미한다. (왜 깊이가 홀수인 대상만 삭제되었는지, as3의 깊이 관리 체제에 따라 추측해 보면 알 수 있다) 만약에 as3에 이런 깊이 관리 체제가 있다면 아무리 삭제해도 깊이가 0인 대상은 항상 존재한다.코드를 바꾸다
<!--Code highlighting produced by Actipro CodeHighlighter
(freeware)http://www.CodeHighlighter.com/-->var num=a.numChildren;
for(var i:uint=0;i<num;i++){
a.removeChildAt(0);
}
trace(a.numChildren);
하면 됩니다. 트레이스의 결과는 0이고 a의 하위 대상이 모두 삭제되었음을 알 수 있습니다.주의: 절대 for(var i:uint=0;i
<!--Code highlighting produced by Actipro CodeHighlighter
(freeware)http://www.CodeHighlighter.com/-->while(a.numChildren>0){
a.removeChildAt(0);
}
실제로 저는while로 삭제하는 방법을 본 후에야 제가 예전에 for로 삭제하는 문제를 발견했습니다. 여러분은 가장 마지막 방법으로 쓰는 것을 권장합니다. 이렇게 쓰는 코드가 가장 간단합니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
AS3 객체 스트리밍as3 대상의 모든 속성을 옮겨다니는 방법 ObjectUtil 클래스의 getClassInfo 함수 코드는 다음과 같습니다. ObjectUtil을 통해getClassInfo(obj)는 특정한 대상의 클래스 정보를 얻...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.