0

내 게임에 SharedObject을 구현하는 데 문제가 있습니다.AS3에서 두 개의 Document 클래스로 SharedObject를 사용하는 방법은 무엇입니까?

내 메인 문서 클래스 EnginemcEndGameScreen이라는 별도 클래스가 있으며이 클래스는 내 플래시 CS6 문서에 연결되어 있습니다.

내 Flash 문서에는 인스턴스 이름이 finalScore이고 bestScore 인 두 개의 텍스트 필드가 있습니다.

내가 달성하고 싶은 것은 플레이어가 게임의 끝에 얻은 최종 현재 점수와 전반적인 최고 점수를 저장하고로드하는 것입니다. 나는이 값들이 물론 내 mcEndGameScreen에 표시되기를 바랍니다.

사용자가 게임을 진행할 때 게임에 표시되는 최고 점수를 업데이트하고 기록하는 방법은 무엇입니까?

//Add Text fields to stage 
stage.addChild(highScoreText); 

//Add score to text field 
nScore = 0; 
updateHighScore(); 

그리고 최고 점수 기능 : 이제

public function updateHighScore():void 
{ 
    highScoreText.text = "High Score: " + nScore; 
} 

, 내가 어떻게 갈 것 내 엔진 기능에

//Text Fields 
public var highScoreText:TextField; 
public var nScore:Number; 

:

HighScore를 지금처럼 내 엔진 클래스에 점수 공유 및 mcEndGameScreen에 표시하는 방법에 대해 알고 싶습니다. 또한 내 엔진에서는 다음과 같이 화면을 참조합니다.

public var menuEnd:mcEndGameScreen; 

그런 다음 게임이 끝나면 바로 아이를 호출합니다. 내 엔진 생성자 함수에서 다음

public var _sharedObject:SharedObject; 

:

하지만 어쩌면 내 엔진 클래스에서이 같은 일을 생각하고 있었는데

_sharedObject = SharedObject.getLocal("myGame"); 

그러나 그 후 무엇을 할 솔직히 너무 확실하지 ? 또는 내 기본 엔진 클래스에 public var finalScore:TextFieldpublic var bestScore:TextField을 사용하는 방법. 그들은 내 mcEndGameScreen에 링크되어 있기 때문입니다.

도움이 될 것입니다. 감사.당신이 mcEndGameScreen 클래스에 최고 점수를 전달하려는 경우

답변

1

다음과 같이 새로운 VAR 새로운 setter 함수를 추가

private var _highScore:String; 

public function set highScore(value:String):():Void { 
    _highScore = value; 
} 

이제 Engine 수업은과 같이 설정하십시오 :

menuEnd.highScore = String(nScore); 

하여 최고 점수를 저장하려면 SharedObject에서 좋아해요 :

_sharedObject = SharedObject.getLocal("myGame"); 
_sharedObject.highScore = nScore; 
_sharedObject.flush(); //Write to shared object 

받는 사람 ESS는 highScore은과 같이 SharedObject에 저장 : 내 mcEndGameScreen 클래스에 설정된 최고 점수 기능을 추가 할 때

menuEnd.highScore = _sharedObject.data.highScore; 
+0

좋아 그럼 내가 최고 점수를 액세스하고 내 FLA 내 finalScore입니다 및 bestScore 텍스트 필드로 사용할 수 있습니까? 내 mcEndGameScreen 클래스의 finalScore 및 bestScore 텍스트 필드를 통해 highScore를 전달하려면 어떻게해야합니까? 그것에 대해 조금 혼란스러워합니다. 그러나 정보에 감사드립니다. 그것은 많은 도움이되었습니다. – Nathan

+0

menuEnd.highScore = nScore;를 사용하려고하면이 오류가 발생합니다. 관련되지 않은 유형 문자열에 대한 유형 number 값의 암시 적 강제 변환입니다. – Nathan

+0

그것은 유형 변환 (문자열로서의 숫자)입니다. 답변을 업데이트했습니다. –