2012-10-28 5 views
2

createjs와 상자 2d를 조합하여 고급 동물 자습서를 Typescript로 변환하려고합니다. 지금까지 내가 만든 엉망이 일하는 것 같습니다. 하지만 지금은이 라인에 Uncaught TypeError: Cannot call method 'push' of undefined 받고 있어요 :TypeScript to js error

this.actors.push(this); 

그러나 actorsprivate actors = [];로 .TS에 정의된다. 나는 방법을 시도했지만 아무도 작동하지 않습니다. 아무도 무슨 일이 벌어지고 있는지 아니? 예컨대, TYPE가 배열의 형태 인 private actors:TYPE[] = []; 사용해 VS 2012

답변

1

자, 문제는 actorObject을 메서드로 호출하지 않고 개체로 생성하는 것입니다 (new Box2d.actorObject).

나는 방금 만든 클래스로, 지금은 꽤 예쁘다.

1

사용

app.ts =>http://paste.laravel.com/8HM default.html을 =>http://paste.laravel.com/8HN

문자열 배열의 경우 private actors:string[] = [];

이것은 나를 위해 작동하는 것 같습니다.

그렇지 않은 경우 코드를 더 게시하십시오. 게시 한 링크의 소스보기에서 .ts 파일을 가져올 수 없으며 (여러 가지) 스크립트 중 어떤 것을 말할 수 있습니까? 문제가있는 페이지에서

+0

죄송합니다. 동일한 링크를 두 번 붙여 넣었습니다. 결정된. – localhost

+1

문제가 무엇인지 즉시 알 수 없습니다. 아마도 액터 var가 범위를 벗어나는 것처럼 실제로 'Box2d'인지 확인하기 위해 'this'를 추적 해보십시오. – JcFx

+0

아 ... 생각났습니다. 'this'는'Box2d.actorObject'와 같이 추적됩니다. 즉,'this.actors'는'Box2d.actorObject.actors'이고, 정의되지 않았습니까? 어쩌면 TS 버그일까요? 내가 인트로 비디오에서 기억하고있는 것에서 볼 때, Anders는 TS가 자동으로 'that = this'또는 그와 비슷한 것을 추가 할 것이라고 말했다. – localhost