[태그:] ActionScript 3.0

  • 3D rotation sample.

    RotationX, rotationY 및 rotationZ를 이용하여 무비클립을 3차원으로 회전시키는 샘플 파일을 만들어 봤습니다. Use rotationZ rather than rotation on TextField 포스트에도 언급했듯이, 텍스트필드도 정상적으로 화면에 표시가 됩니다.

    선을 드래그하면 X, Y 및 Z 축 한 가지만 회전되고, 면을 드래그하면 X축과 Y축을 동시에 제어할 수 있습니다. 마찬가지로 더블클릭하면 해당하는 속성만 0으로 초기화됩니다.

    나중에 이미지 편집기 기능 개선할 때 적용시켜야겠네요.

    I made a sample movie rotating a movieclip in 3D space with rotationX, rotationY and rotationZ. Like I said on Use rotationZ rather than rotation on TextField, the textfield is displayed properly.
    Drag on the blue lines or the gray circle to rotate the movieclip.
    ムービクリプを3次元で回転する簡単なサンプルを作って見ました。Use rotationZ rather than rotation on TextField ポストで言った通り、テキストフィルドも正しく表れるんです。
    青いラインやグレー円をドラグすると、ムービクリプを回転出来ます。

    Source file is here.

  • Use rotationZ rather than rotation on TextField.

    플래시 플레이어 9 이전 버전에서는, 폰트를 임베드하지 않은 다이나믹 또는 인풋 텍스트필드를 회전하거나 투명도를 적용하면 텍스트필드의 화면에 표시되지 않는 문제가 있었습니다. 그래서 어쩔 수 없이 폰트를 임베드 시키거나, 스테이틱 텍스트로 사용했어야 했죠.

    그런데 플래시 플레이어 10에서는 텍스트필드에 투명도를 주거나 회전시키는 것이 가능합니다. 문제는 rotation을 이용하여 회전시키면 이전과 마찬가지로 화면에 표시되지 않는다는 것입니다. 대신 rotationZ를 사용하여 회전하면 문제없이 디스플레이 됩니다.

    In Flash Player 9 or older version, dynamic or input textfields do not displayed on screen if they are rotated or applied transparency. So you have to embed a font or have to use static textfields.

    In Flash Player 10, you can rotate or apply transparency to textfields without embeding any font. But you have to use rotationZ not rotation property.

    Flash Player 9と以前のバージョンで、テキストフィルドを回転するとか、透明度を適用すると、そのテキストフィルドが画面に表れなかったんです。だからフォントを挿入する、或はステーチックテキストフィルドを使用するしかないんです。

    Flash Player 10では、フォントを挿入しなくても、テキストフィルドを回転するのが出来ます。だが、rotationじゃなくrotationZ属性を使うんです。

  • Flash Image Viewer renewed

    대략 3, 4년 전에 AS2(Flash Player 7)로 만들었던 이미지 뷰어를 AS3(FP10) 버전으로 만들어 봤습니다. 이전 버전은 enterFrame을 사용하여 창 크기를 변경하다 보니, 창이 커졌다 작아졌다 한다거나, 화면 해상도보다 큰 경우 무한루프에 빠져버리는 버그들이 있었죠. 그래서 이번에는 Tweener를 사용하여, 어떠한 경우라도 1초 만에 리사이즈가 완료되어 무한 루프에 빠지는 문제를 해결하였습니다. 또 몇 가지 기능도 추가하거나 개선했고요.

    나중에 Project 메뉴를 추가해서 소스와 사용법 등 정보를 공개할 생각입니다. 일단, 버그나 기능 추가는 아래 코멘트에 남겨주세요.

    View samples
    acc_01.jpg
    stx_main.jpg
    115.jpg (useTween=true)
    1041.jpg (useTween=false)

  • 숫자에 1000단위 콤마 넣기

    땡굴이가 블로그에 올린 ‘숫자에 1000단위 콤마(,)를 넣어주는 방법 (2)‘를 보고, 저도 작년에 만들었던 함수를 공개해 봅니다. 다른 사람이 만든 함수를 그때그때 복사해서 사용하다가, 코드를 좀 더 짧게 만들어보려고 연구한 성과(?)죠.
    Sorry, English translation is not available on this post.
    ごめんなさい。このポストには日本語の翻訳を提供しません。
    public static function makeCurrency(str:String):String{
    	var arr:Array = str.split("");
    	var len:uint = arr.length;
    	
    	for(var i:int=len-1, cnt:int=1; i>0; i--, cnt++){
    		if((cnt % 3)==0){
    			arr[i] = "," + arr[i];
    		}
    	}
    	str = arr.join("");
    	return str;
    }
  • 플래시와 XML 인코딩이 다른 경우 데이터 로드하기

    보통 AS3에서 외부 데이터를 로드하기 위해서 URLLoader를 많이 사용합니다. 그런데 플래시의 인코딩 설정과 로드할 XML 또는 텍스트 파일의 인코딩 설정이 다른 경우에 2바이트 언어의 문자가 깨져서 들어오죠. 그래서 System.useCodePage 설정을 바꿔주거나, 텍스트 파일의 인코딩을 변경하거나 둘 중 하나를 해 주어야 합니다. 뭐 좀 귀찮지만, 여기까진 문제가 없죠.

    그런데, 만약, 서로 다른 인코딩의 텍스트 파일 2개 이상을 동시에 로드해야 하는 경우라면 OTL 이죠. 이럴 때 XMLLoader를 사용하면 문제가 말끔히 사라집니다. ^^

    상황 1
    플래시 EUC-KR —– 텍스트 UTF-8
    XMLLoader.load(UR [,”utf-8″]);==> 한글 정상 표시
    URLLoader.load(UR) ==> 한글 깨짐
    (UR은 URLRequest 객체)

    상황2
    플래시 UTF-8 —– 텍스트 EUC-KR
    XMLLoader.load(UR, “euc-kr”) ==> 한글 정상 표시
    URLLoader.load(UR) ==> 한글 깨짐

    상황3
    플래시 UTF-8 —– 텍스트1 UTF-8, 텍스트2 EUC-KR
    XMLLoader.load(UR1 [, “utf-8”]) ==> 한글 정상 표시
    XMLLoader.load(UR2, “euc-kr”) ==> 한글 정상 표시
    URLLoader.load(UR1) ==> 한글 정상 표시
    URLLoader.load(UR2) ==> 한글 깨짐

    XMLLoader는 내부적으로 URLStream을 사용하는 것으로, URLLoader 대신 URLStream 을 사용하여도 같은 효과를 얻을 수 있습니다.

    참고 URL: http://hangunsworld.com/blog/259