내 Achievements 클래스에서 내 값 중 하나에 대해 localStorage를 구현하고 싶습니다. 따라서 기본적으로이 클래스는 백엔드 데이터베이스에서 플레이어 데이터를 가져오고 플레이어가 특정 작업을 지우면 업적이 해제됩니다. 지금 나는javascript localStorage 구현 방법
성과를 다음과 같이 단지 한 업적 정의가 {1 : {이름 : 'First_Achievement', 상태 : 1}}
내 성과에 대한 플래그와 같은 상태 필드 역할을
. 상태가 1이면 업적은 계속 잠기고 0이되면 업적이 해제됩니다.성취도가 잠금 해제 된 경우의 해골 코드입니다. 이 코드 블록은 특정 작업은 내가 게임을 실행할 때
checkAchievements:function(){
this.probsSolved = this.getTeamProbSolved();
if(this.Achievements[1].status == 1 && this.probsSolved.length >=3)
this.triggerAchievement(1); // spawns achievement 1 on screen
this.Achievements[1].status = 0;
},
그래서이 제대로 작동 성과를 잠금을 해제하려면 해제되어 있는지 내 게임 10 초마다 체크한다. 다음 번에 게임을 다시 시작할 때까지 "this.Achievements [1] .status"가 0으로 설정됩니다. 그것은 "this.Achievements [1] .status"를 1로 설정하고 if 루프는 상태가 1로 다시 설정되면 다시 실행됩니다. 왜냐하면 분명히 내 성취가 생성되거나 한 번만 표시되기를 원하기 때문입니다. 내가 게임을 할 때마다 그런 것은 아닙니다.
그럼 localStorage를 구현하려면 어떻게해야합니까? 나는 "Achievements.status"필드를 localStorage에 저장하여 if 루프가 매번 실행되는 것이 아니라 한 번만 실행되도록해야한다고 가정합니다. 아니면 이것을 구현할 수있는 다른 방법이 있습니까?
제가 다음localStorage.setItem 시도 (this.Achievements [1] .STATUS, 0);
있지만
도움이 작동하지 않습니다 주시면 감사하겠습니다! 감사!
타사 스크립트를 사용하는 것에 반대하지 않는 경우 : http://www.jstorage.info/ –