2013-06-17 2 views
0

함수에서 # 1010 오류가 발생했으며 오류의 구체적 위치가 궁금합니다. 감사!AS3 오류 # 1010의 기능

public function getSide(point:Point,mag:Number):int 
    { 
     if (level.map[int(point.x - mag/32)][int(point.y/32)].typ != 2) 
     { 
      return 0; 
     } 
     else if (level.map[int(point.x/32)][int(point.y+mag/32)].typ!=2) 
     { 
      return 1; 
     } 
     else if (level.map[int(point.x+mag/32)][int(point.y/32)].typ!=2) 
     { 
      return 2; 
     } 
     else if (level.map[int(point.x/32)][int(point.y-mag/32)].typ!=2) 
     { 
      return 3; 
     }else{ 
      return getSide(point,mag+1); 
     } 
    } 
+0

'level'과'point' 객체가 존재하는지 확인/정의 – Cherniv

+0

포인트가 함수에 정의되어 있습니다 – Barakados

+0

100 % getSide 함수에 정의되지 않았습니다 – Cherniv

답변

0

오류 또는 값과 같은 용어가 정의되지 않은 경우 오류 # 1010이 발생합니다. 2 차원 level.map 배열에서 유형이 지정되지 않은 객체를 검색 중이므로 추측을 통해 오류의 원인이되는 .typ 호출이라고 가정합니다.

각 if-else에 대해 .typ을 호출하기 전에 개체 검색을 캐스팅 해보십시오. 예를 들어, 다음을 대체 :이

level.map[int(point.x - mag/32)][int(point.y/32)].typ != 2 

을 :

(level.map[int(point.x - mag/32)][int(point.y/32)] as MyClass).typ != 2 

분명히 당신이 캐스팅 할 클래스의 이름으로 MyClass을 교체합니다.

point.x - mag/32Order of Operations 기준으로 point.x - (mag/32)으로 계산된다는 점에 유의하십시오. 나는 이것이 당신이 의도 한 것이 었는지 모르겠지만 그것을 지적하고 싶었습니다.