플렉스 객체 직렬화되어 응용 프로그램 상태를 저장/복원합니다

StackOverflow https://stackoverflow.com/questions/603890

  •  03-07-2019
  •  | 
  •  

문제

Flex에서 객체의 계층 구조를 직렬화하고 서버에서 저장/검색을 위해 바이너리 데이터를 URL로 보내서 데이터를 원래 상태로 복원 할 수 있습니까?

객체를 XML 형식으로 변환 할 수 있다는 것을 알고 있지만 (아직 시도하지 않은) XML을 구문 분석하고 수동으로 객체를 재구성하지 않기를 바랍니다. 객체를 간단한 바이너리 형식으로 직렬화/사형화 할 수있는 기능을 갖는 것이 좋을 것입니다 (과거에는 Java에서 비슷한 일을했지만 쉽게 쉽게는 없었습니다). Perl의 'Eval'함수는 내가 찾고있는 것과 유사하며, 물론 코드를 저장하는 것과 비슷합니다.

의사 코드에서 내가하고 싶은 일은 다음과 같습니다.

private var contentToSave:HBox = new HBox();

private function saveState(event:Event):void {
    var toSave:HBox = this.contentToSave;
    var data:? = /* serialize 'toSave' ActionScript classes to binary data*/;
    sendDataToServer(data, filename);
}
private function restoreState(filename):void {
    var data:? = getDataFromServer(filename);
    var savedData:HBox = /* deserialize binary 'data' to ActionScript classes */;
    this.contentToSave = savedData;
}
도움이 되었습니까?

해결책

JSON 기반을 사용해보십시오 serialization 패키지 아스코렐리브.

...]하지만 XML을 구문 분석하고 수동으로 물체를 재건하는 것을 피하고 싶습니다.

다른 기본 유형과 마찬가지로 XML을 처리합니다. 안심하십시오. XML은 서버를 꺼내어 다시 넣을 데이터를 다루는 선호하는 방법입니다. 물론 ascorelib JSON 클래스를 제공하므로이를보고 싶을 수도 있습니다.

Perl의 'Eval'함수는 내가 찾고있는 것과 유사하며, 물론 코드를 저장하는 것과 비슷합니다.

IIRC, eval ECMAScript 사양의 일부입니다 (그리고 JavaScript에서 찾을 수 있습니다). 그러나 AS3.0은 아닙니다. 이전 버전에서 어느 정도까지 있었지만 더 이상 지원되지 않습니다.

다른 팁

Take a look at ByteArray.writeObject(). which saves the passed object in AMF format into the byte array. I have not used this function too much, I don't exactly know what kind of objects it can serialize, but definitely not all.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top