[AS3] System 클래스

Programming/ActionScript 3.0 2007. 6. 20. 04:22

System 클래스에는 유저의 operating system를 조작하여 Flash Player의 현재의 메모리 사용 상황을 취득하기 위해서 사용할 수 있는 메소드와 프롭퍼티가 들어가 있다. System 클래스의 메소드와 프롭퍼티를 사용하면 imeComposition 이벤트가 기다려 유저의 현행 code page를 사용한 외부 텍스트 파일에서 로드를 하기 위한 Flash Player에 대한 지시나 유저의 클립보드의 내용의 설정할 수도 있다.


실행시에 있어서의 유저의 시스템에 관한 데이터의 취득
System.totalMemory 프롭퍼티를 조사하면 Flash Player가 현재 사용하고 있는 메모리의 용량을 바이트 단위로 판별할 수 있다. 이 프롭퍼티를 사용해 메모리 사용량을 감시하면 빈메모리의 변화에 따라 어플리케이션의 동작을 최적으로 조정할 수 있다 .예를 들어 특정의 비주얼 효과를 사용하면 메모리 사용량이 큰폭으로 증가할 수 있는데 이런 상황에서 그 효과를 변화 시키거나 완전하게 무효로 하는 것을 생각할 수 있다.

System.ime 프롭퍼티는 현재 인스톨 되고 있는 IME (Input Method Editor) 에 대한 참조다. 이 프롭퍼티를 사용하면 addEventListener() 메소드로 imeComposition 이벤트 (flash.events.IMEEvent.IME_COMPOSITION) 를 기다릴 수 있다.

System 클래스의 3 번째의 프롭퍼티는 useCodePage이다. useCodePage를 true로 설정하면 Flash Player를 실행하고 있는 operating system의 통상의 code page를 사용해 외부 텍스트 파일이 로드 된다. 이 프롭퍼티를 false 로 설정하면 Flash Player는 외부 파일을 Unicode로서 해석한다.

SWF 파일내에서 사용되는 외부 텍스트 파일을 모든 플랫폼의 유저가 표시할 수 있도록 하려면 (모든 외부 텍스트 파일을 Unicode로 하려면) System.useCodePage를 디폴트의 false 의 설정대로 하면 된다. 그렇게 하면 Flash Player 6 이후에서는 텍스트가 Unicode로서 해석된다. true는 그 반대의 경우가 된다.


클립보드에의 텍스트의 보존
System 클래스에는 setClipboard()라는 메소드가 있다. 이 메소드를 사용하면 Flash Player로부터 지정한 스트링을 유저의 클립보드의 내용으로서 저장할 수 있다. 보안상의 이유로 Security.getClipboard() 메소드는 없다. 그러한 메소드는 악의 있는 사이트가 유저의 클립보드에 마지막에 카피된 데이터에 액세스 하는 것을 허락할 우려가 있기 때문이다.

다음의 코드는 시큐러티 에러가 발생했을 때에 유저의 클립보드에 에러 메세지를 카피하는 방법이다. 이 에러 메세지는 유저가 어플리케이션의 잠재적인 버그를 보고하는 경우에도 도움이 된다.

private function securityErrorHandler(event:SecurityErrorEvent):void {
var errorString:String = "[" + event.type + "] " + event.text;
trace(errorString);
System.setClipboard(errorString);
}


    

설정

트랙백

댓글