상태 시스템을 만들려고하지만 작동하지 않습니다. 지금까지이 코드를 가지고 :개체가 메서드를 찾을 수 없습니다.
function makeStateMachine() {
this.stateConstructors = new Object();
this.currState = {
update : function(e) {
// Nothing to do here
},
exit : function() {
// Nothing to declare
}
};
this.nextState = null;
var that = this;
this.update = new function(e) {
that.currState.update(e);
that.changeState();
};
this.setNextState = new function(targetState) {
that.nextState = targetState;
};
this.addState = new function(constructor, stateName) {
that.stateConstructors[stateName] = constructor;
};
this.changeState = new function() {
if (that.nextState != null) {
that.currState.exit();
that.currState = new that.stateConstructors[that.nextState]();
that.nextState = null;
}
};
}
나는 그것을 불을 지르고 표시이 오류를 실행하려고하면 "형식 오류를 : that.changeState는 함수가 아닙니다"업데이트 기능의 선에서. changeState() 행의 주석을 제거하면 EaselJS 라이브러리에 대한 징징기가 시작됩니다 (다른 프로젝트에서 작동하기 때문에 올바르다는 것을 알고 있습니다). 누군가 나를 도와 줄 수 있니? 아마 뭔가 매우 간단합니다 (항상 그렇듯이)하지만 오류를 발견 할 수는 없습니다. 여러분이 좋아한다면 나머지 코드를 게시 할 수 있지만 관련성이 있다고는 생각하지 않습니다.
미리 감사드립니다.
모든 함수 정의에서'new' 키워드를 삭제하려고 시도 했습니까? – searlea
새 상태 시스템은 어떻게 작성합니까? 'var machine = new makeStateMachine();' – Bart