APE(Actionscript Physics Engine) Class Diagram

Project/Programming 2007. 8. 16. 10:05

기존에 만들었던 APE의 UML에서 Association 표기가 없었던 것을 추가하고 기존에 잘못 되었던 부분을 수정했다. 클래스 소스를 기준으로 작성된 class diagram이므로 정확하지 않을 수 있지만 대체적으로 package를 분석하는데 도움이 될 것 같다.

아래 풀사이즈 jpg이미지와 플래시로 만들어 놓은 파일을 올려놓는다.  






사용자 삽입 이미지





    

설정

트랙백

댓글

[AS3] Capabilities 클래스

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

Capabilities 클래스를 사용하면 개발자는 SWF 파일의 실행 환경에 관한 정보를 취득할 수 있다. Capabilities 클래스의 다양한 프롭퍼티에 의해서 유저의 시스템에 있어서의 화면 해상도에 대한 서포트의 유무, 유저의 operating system의 언어, 및, 현재 인스톨 되어 있는 Flash Player의 버전을 알 수 있다.

Capabilities 클래스의 프롭퍼티를 확인해보면 실제 유저 환경에 따라 어플리케이션의 동작을 최적으로 조정할 수 있다 .예를 들어 Capabilities.screenResolutionX 및 Capabilities.screenResolutionY 프롭퍼티를 조사하는 것으로 유저의 시스템으로 사용되고 있는 디스플레이 해상도를 판별하여 어느 사이즈의 비디오가 최적인가를 판단할 수 있다. 또한 Capabilities.hasMP3 프롭퍼티를 조사하면 외부 MP3 파일을 로드하기 전에 유저의 시스템에 있어서 MP3 재생의 서포트 상황을 알 수 있다.

다음의 코드에서는 클라이언트 환경에 인스톨 되어 있는 Flash Player의 버전 정보를 정규 표현으로 해석하고 있다.

var versionString:String = Capabilities.version;
var pattern:RegExp = /^(w*) (d*),(d*),(d*),(d*)$/;
var result:Object = pattern.exec(versionString);
if (result != null) {
trace("input: " + result.input);
trace("platform: " + result[1]);
trace("majorVersion: " + result[2]);
trace("minorVersion: " + result[3]);
trace("buildNumber: " + result[4]);
trace("internalBuildNumber: " + result[5]);
} else {
trace("Unable to match RegExp.");
}
유저의 시스템의 기능에 관한 정보를 서버 사이드 스크립트에게 전하여 데이타베이스에 보존하려면 다음과 같은 ActionScript 코드를 사용할 수 있다.

var url:String = "log_visitor.cfm";
var request:URLRequest = new URLRequest(url);
request.method = URLRequestMethod.POST;
request.data = new URLVariables(Capabilities.serverString);
var loader:URLLoader = new URLLoader(request);
    

설정

트랙백

댓글

[AS3] full-screen mode

Programming/ActionScript 3.0 2007. 6. 20. 00:59
블로그의 infinite 메뉴를 만들면서 스크린 모드에 따라 Event dispatcher가 있을 것 같아서 help파일을 찾아보니 역시나 있었다. 블로그의 infinite메뉴의 기능은 버튼을 눌렀을 때 FullScreen mode가 되며 3D 오브젝트를 보여주는 Main 클래스의 start 메소드를 호출하게 됨으로서 화면에 3D 오브젝트를 보여주게 되는데 이처럼 Screen Mode의 처리 결과에 따른 Event를 처리할 수 있다.










import flash.events.FullScreenEvent;
import flash.events.MouseEvent;

private function toggleFullScreen(event:MouseEvent):void {
switch (stage.displayState) {
case "normal" :
stage.displayState = "fullScreen";
break;
case "fullScreen" :
default :
stage.displayState = "normal";
break;
}
}

// fullScreenBtn라는 버튼을 클릭함에 따라 Screen mode가 toggle switch됨.
fullScreenBtn.visible = stage.hasOwnProperty("displayState");
fullScreenBtn.addEventListener( MouseEvent.CLICK, toggleFullScreen );


function fullScreenRedraw(event:FullScreenEvent):void
{
if (event.fullScreen)
{
FullScreen mode가 됐을 때 처리
}
else
{
Normal mode가 됐을 때 처리
}
}

// stage의 Screen Mode 변환에 따른 처리하기 위한 stage에 리스너를 등록.
stage.addEventListener(FullScreenEvent.FULL_SCREEN, fullScreenRedraw);



    

설정

트랙백

댓글