0

왜 AS3에서이 오류가 발생하는지 알지 못합니다. "정의되지 않은 속성 블록에 대한 액세스".블록 속성 ActionScript 3

나는 어쩌면

function mainLoop (e:Event) { 
    for (var i = 0; i < numChildren; i++){ 
    if (getChildAt(i) is Block) 
    { 
     var bb = getChildAt(i) as Block; 
     if (bb.hitTestPoint(mouseX, mouseY)) 
     { 
     trace("hit"); 
     } 
    } 
    }  
} 

누락 된 수입, 튜토리얼을 다음과 그대로 코드를 복사 한? 비록 FlashDevelop가 자동으로 추가되지 않았기 때문에 가끔씩 나는 단서가 없다.

답변

0

Block에 대한 클래스 정의가 있어야한다. .swc 라이브러리의 일부로 내보내거나 코드에서 정의 할 수 있습니다. 원인의 Block 클래스의 정의없이 오류가 발생합니다.

또한 당신이 당신의 메인 루프를 향상시킬 수, 당신은 getChildAt 및 운영 is도 최적화 할 수 as 여러 번 같은 조회를 수행해서는 안 : 나는 자습서를 다음했다

function mainLoop(e:Event) { 
    var block:Block, len:int = numChildren, i:int; 
    for (i = 0; i < len; i++) { 
     block = getChildAt(i) as Block; 
     if (block != null) { 
      if (block.hitTestPoint(mouseX, mouseY)) { 
       trace("hit"); 
      } 
     } 
    } 
} 
+0

. 나는 코드를 읽고 그것의 일부를 집어 들었고 때로는 나는 이해하지 못한다. 나는 클래스 정의에 대해 이해하지 못했다. 클래스에 관한 내용을 읽었을뿐만 아니라 클래스를 내 스스로 만들었다. (그래서 나는 클래스에 대해 전혀 알지 못한다.) 며칠 전에 as3을 시작했는데, 이해하기 바란다. (여기에 코드 조각을 요구하면 안된다 : P) - 그럼, 블록에 대한 클래스 정의? "Public class Block extends ..."처럼? – RAO

+0

예,'public class Block Sprite extends' –

+0

주 클래스의 이름 인 Example to Block을 변경하면 오류가 발생하지 않지만 아무 것도 추적하지 않습니다. – RAO