액션스크립트는 대부분 메모리에 데이터가 저장되어 사용하다가 무비가 종료하면 데이터도 사라지게 된다. 하지만 무비가 종료되더라도 데이터를 남겨 사용하고 싶거나 같은 클라이언트에서 다른 무비들간에 데이터를 공유하고 싶을 때는 SharedObject(공유객체)라는 것을 사용한다.

SharedObject()는 쿠키보다 더 큰 데이터(최고 100kb)를 저장 할 수 있으며 AS3의 데이터 타입을 그대로 저장/사용 할 수 있다. 이 객체를 사용하여 사용자 컴퓨터에 데이터를 저장하게 되면 "sol"이라는 확장자의 바이너리 데이터를 C:\Documents and Settings\Administrator\Application Data\Macromedia\Flash Player\#SharedObjects\[랜덤폴더명]..와 같은 경로에 생성하게 된다.

[ 속성 ]

client : Object

콜백 메서드가 호출되는 객체를 나타냅니다.

data : Object

[read-only] 객체의 data 속성에 할당된 특성 모음입니다. 이러한 특성은 공유 및 저장이 가능합니다.

defaultObjectEncoding : uint

[static] SWF 파일에서 만들어진 모든 로컬 공유 객체에 대한 기본 객체 인코딩(AMF 버전)입니다.

fps : Number

[write-only] 공유 객체에 대한 클라이언트의 변경이 서버로 전송되는 초당 횟수를 지정합니다.

objectEncoding : uint

이 공유 객체의 객체 인코딩(AMF 버전)입니다.

size : uint

[read-only] 공유 객체의 현재 크기(바이트)입니다.

 

 

[ 메서드 ]

clear():void

로컬 공유 객체의 경우, 모든 데이터를 제거하고 디스크에서 공유 객체를 삭제합니다.

close():void

원격 공유 객체와 서버 간의 연결을 종료합니다.

connect(myConnection:NetConnection, params:String = null):void

지정된 연결을 통해 서버의 원격 공유 객체에 연결합니다.

flush(minDiskSpace:int = 0):String

로컬 영구 공유 객체를 로컬 파일에 즉시 기록합니다.

getLocal(name:String, localPath:String = null, secure:Boolean = false):SharedObject

[static] 현재 클라이언트에만 사용 가능한 로컬 영구 공유 객체에 대한 참조를 반환합니다.

getRemote(name:String, remotePath:String = null, persistence:Object = false, secure:Boolean = false):SharedObject

[static] Flash Media Server와 같은 서버를 이용하여 여러 클라이언트 간에 공유할 수 있는 객체에 대한 참조를 반환합니다.

send(... arguments):void

메시지를 보낸 클라이언트를 포함하여 지정된 원격 공유 객체에 연결된 모든 클라이언트로 메시지를 브로드캐스트합니다.

setDirty(propertyName:String):void

공유 객체의 속성 값(data 속성으로 정의)이 변경되었음을 서버에 알립니다.

setProperty(propertyName:String, value:Object = null):void

공유 객체의 속성 값(data 속성으로 정의)을 업데이트하고 해당 속성의 값이 변경되었음을 서버에 알립니다.

 

 

[ 이벤트 ]

이벤트

요약

asyncError

기본 비동기 코드에서 비동기적으로 예외가 발생할 때 전달됩니다.

netStatus

SharedObject 인스턴스가 상태 또는 오류 상황을 보고할 때 전달됩니다.

sync

서버에서 원격 공유 객체(SharedObject)를 업데이트하면 전달됩니다.

Posted by 버터백통