컨테이너 배열에 저장 한 컨테이너 내에서 컨테이너를 가져 오려고합니다. 혼란 스럽네요. 코드는 다음과 같습니다.컨테이너 배열을 반복합니다.
먼저 사람과 동물을 위해 BMP와 레이블을 저장할 개별 컨테이너를 만듭니다. (BMP 및 관련 레이블을 개별적으로 제어하기 위해 NPC의 각 인스턴스에 대해 새 컨테이너를 만듭니다.).
peopleContainer.addChild(peopleBMP, peopleLabel);
animalContainer.addChild(animalBMP, animalLabel);
animalContainer2.addChild(animalBMP, animalLabel);
그때 나는 그들에게 이름과 ID를 할당합니다
peopleContainer.name = "peopleContainer1";
peopleContainer.id = 0;
animalContainer.name = "animalContainer1";
animalContainer.id = 1;
animalContainer2.name = "animalContainer2";
animalContainer2.id = 2;
그때 이러한 개별 용기 저장 용기 만들
: 배열에
ContainerOfPeople = new createjs.Container();
ContainerOfPeople.name = "Container Of People";
ContainerOfPeople.id = 0;
ContainerOfPeople.addChild(peopleContainer);
ContainerOfAnimals = new createjs.Container();
ContainerOfAnimals.name = "Container Of Animals";
ContainerOfAnimals.id = 1;
ContainerOfAnimals.addChild(animalContainer, animalContainer2);
그때 그 큰 컨테이너를 추가하십시오
이제 대형 컨테이너의 배열을 반복하고 대형 컨테이너 내의 컨테이너 ID를 얻으려고합니다. 그런 식으로 플레이어의 가장 가까운 거리를 확인할 수 있습니다.
function checkDistance2() {
//loop through Containers Array [ContainerOfAnimals, ContainerOfPeople]...
for (var index = 0; index < NPC_Array.length; index++) {
console.log(NPC_Array[index].children[0].name);
}
}
이
출력 제공 :peopleContainer1
animalContainer2
그것은 작동하는 것 같군,하지만 그것은 ContainerOfAnimals 내 첫 animalContainer (이름 animalContainer1
)를 스킵합니다. 왜 그런가요?
감사합니다.
왜? animalContainer의 이름은'animalContainer1'이지만, 실제 container 변수의 이름은 여전히 animalContainer입니다 ... name 속성을 변경할 때 변수 이름 참조가 어떻게 든 변경되지 않는다면? – Growler
사실, 저의 실수입니다. 내 편집을 참조하십시오. –
animalContainer1이 추가되지 않은 이유를 알아 냈습니다 ... 원래는'animalContainer2 = animalContainer;를 수행하여 animalContainer1의 새 사본을 animalContainer2에 만들 수 있다고 생각했습니다. 그냥 'animalContainer2'가 필요하다는 것을 깨달았습니다. 복제본을 만들려면 – Growler