'방문자 기록'에 해당되는 글 1건

  1. 2008.07.13 쿠키처럼 사용자의 정보를 swf 공유객체에 저장하는 SharedObject
Tip And Tech2008. 7. 13. 14:27

SharedObject는 사용자 컴퓨터 공유객체에 저장하는 공간을 만들어 쿠키처럼 호출하여 값을 참조할 수 있도록 한다. 공유객체에 참조자를 만들기 위해서는 반드시 getLocal()를 설정해야 한다. 그리고 swf에서 쿠키처럼 사용할 수 있는 공간 100kb밖에 안된다.

예) 오늘본 상품 등록..
생성시...아래의 메서드를 선언해야 한다.
getLocal : 컴퓨터에 저장
getRemote : 서버를 통해 공유(예: 두 pc가 같이 그림을 그릴수 있다...) 특정 서비스 서버가 있어야한다.



[Public 속성]
client : Object
콜백 메서드가 호출되는 객체를 나타냅니다.

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

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

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

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

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

[Public 메서드]
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)를 업데이트하면 전달됩니다.

아래 코드는 간단히 SharedObject 를 사용하여 방문기록을 표현한 것이다.
private var so: SharedObject = SharedObject.getLocal( "www.xprime.co.kr");

public function SharedObjectTest()
{
   super();
   if( so.data.count == undefined ){
    so.data.count = 1;    
   }else {
    so.data.count ++;
   }
   
   if( so.data.date == undefined ){
    so.data.date = new Date();
   }

   trace( "당신은 "+  so.data.count + " 번 접속했습니다. " , so.data.date.toString()  );
   so.data.date = new Date();
 }


// 출력 : 당신은 3 번 접속했습니다.  Sun Jul 13 14:03:41 GMT+0900 2008

Posted by 버터백통