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;
}
[카테고리:] Flash
-
숫자에 1000단위 콤마 넣기
땡굴이가 블로그에 올린 ‘숫자에 1000단위 콤마(,)를 넣어주는 방법 (2)‘를 보고, 저도 작년에 만들었던 함수를 공개해 봅니다. 다른 사람이 만든 함수를 그때그때 복사해서 사용하다가, 코드를 좀 더 짧게 만들어보려고 연구한 성과(?)죠.Sorry, English translation is not available on this post.ごめんなさい。このポストには日本語の翻訳を提供しません。 -
플래시와 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
-
Retrieving the URL.
플래시 무비에서 해당 SWF 파일을 포함하는 HTML 문서의 URL을 구하려면, HTML 문서에서 설정을 해주어야 합니다. FlashVars 파라메터 또는 자바스크립트를 통해서 플래시 무비로 URL을 전달해 줘야 하죠. 그런데 플래시의 ExternalInterface API와 자바스크립트의 eval() 함수를 이용하면, 그럴 필요가 없습니다.To retrieve the HTML document’s URL in which the SWF file is inserted, you have to modify the HTML document. Pass the URL to the SWF movie via an FlashVars parameter or a JavaScript function. But, the ExternalInterface API in Flash and eval() function in JavaScript provide you with a more simple solution.SWFファイルが含まれているHTMLドキュメントのURLを得るためには、そのHTMLファイルに何か設定をしなければならない。FlashVarsパラメタとかJavaScriptを使ってフラッシュムービーにURLを伝達します。でも、フラッシュのExternalInterface APIと共にJavaScriptのeval()函数を使用すると、その必要はないんです。var btn:Button; for(var i:uint=1; i<=3; i++){ btn = this["b" + i]; btn.addEventListener(MouseEvent.CLICK, clickListener); } function clickListener(e:MouseEvent):void{ btn = e.currentTarget as Button; var str:String = ExternalInterface.call("eval", btn.label); tf.text = str; }Related link: http://wooyaggo.tistory.com/163
-
Using “setTimeout()” in a custom class.
ActionScript 2.0을 사용할 때, 플래시 8에서 추가된 setTimeout() 메소드를 사용하면 편리하지만, 클래스에서 setTimeout()를 사용하면 다음과 같이 에러가 발생합니다.
There is no method with the name ‘setTimeout’.
그래서 setTimeout() 대신 setInterval() 메소드를 사용하는 경우가 생기죠. 그럴 필요 없이 $(LocalData)/Classes/toplevel.as 파일을 수정하면 이 문제가 말끔히 해결됩니다.
이 파일을 열어서 다음 2줄을 추가하고, 저장합니다. 그리고 플래시를 재시작하면 클래스에서도 setTimeout() 메소드를 문제없이 사용할 수 있습니다.intrinsic function clearTimeout(id:Number):Void; intrinsic function setTimeout():Number;
ActionScript 3.0의 경우라면 다음과 같이 utils 패키지의 메소드들을 임포트 해주면 됩니다.
import flash.utils.setTimeout; import flash.utils.clearTimeout;
-
[펌] Reasons to use ActionScript 3.0
왜 액션스크립트 3.0을 사용해야 하는지에 대한 6가지 이유를 정리한 것입니다. 이 정도면 ActionScript 3.0을 공부하기에 충분하지 않나요?- Your skills will be in high demand
내 생각으로 이것은 현재 Flash developer 로 일하고 있던 일할 계획을 가지고 있던 새로운 언어를 배워야 하는 주된 이유이다. 대부분의 커다란 Flash 일들은 Actionscript3.0 으로 제작되고 있다. 앞으로 Actionscript2.0 기술을 요구하는 일들은 점점 작아질것이므로 당신이 Flash 로 일을 할 계획을 가지고 있다면 Actionscript3.0 은 필수다. - Everything you build will be faster
Flash 개발자들은 새롭게 낸 아이디어나, 정말 기발한 생각으로 만들어진 컨텐츠들이 Flash player 에 한계에 부딛히는걸 보며 좌절을 느껴왔다. Actionscript3.0 은 이전 언어의(Actionscript2.0) 10배 이상의 퍼포먼스를 제공한다. 이 의미는 Stage 위에 더 많은 객체들을 동시에 조절할 수 있다는 것을 의미 한다. 만약 당신의 프로젝트를 부드럽게, 보기 좋은 퍼포먼스를 내기를 원한다면 Actionscript3.0 이 그것을 도와줄 것이다. - There’s an abundance of new APIs
Flash 개발자로서 새로운 장난감( Class package 를 묘사한것 같다. ) 을 자신의 프로젝트에 통합 하는 것 만큼 즐거운 일은 없을것이다. Actionscript3.0 은 XML, 정규식, binary sockets 와 같은 100가지의 새로운 APIs 를 포함하고 있다. 더 대단한 것은 Actionscript 의 모든 부분이 새로운 언어의 특징에 맞게 찾아 쓰기 편하도록 package 별로 namespaces 별로 나눠져 있다는 것이다. 당신은 Actionscript3.0 을 사용할때 Flash toolbox 가 더이상 가득 차 있어서 찾기 불편한것이 아닌, 잘 정리되어 있는것을 볼 수 있을것이다. - The display list rocks
Actionscript3.0 에서는 Flash 가 visual object(DisplayObject)를 처리 하는 방법이 달라졌다. ( 이전 버젼과 가장 큰 차이점 ) 이전 버젼의 언어에서는, Flash movie 에서 객체들의 display order(depth) 를 조절하기위해 black art 를 사용하였다. 이 언어를 배우기 시작하는 사람들은 이해 할수 없는 많은 꼼수와 대안이 존재 한다. 예를 들어 이것은 보통 가장 깊은 곳에 있는 visual object 들을 어떤 무엇보다 가장 높은 곳에 위치시키기 위해 사용된다. 이것은 큰 단위 프로젝트시 많은 문제를 일으키고 depth 를 조절하는 메뉴얼을 필요로 한다. Actionscript3.0 에서 visual object 를 조작하는 새로운 규율은 이러한 객체들을 rendering 하는데 간단한 메카니즘으로 되어 있다. 한번 Actionscript3.0 을 사용하기 시작하면 다시는 3.0 없이는 작업을 못할 것이다. ( depth를 조절 하는 방법이라든지 규칙(내부적으로)이 변하였다는 것을 말하고 있다. ) - The object-oriented structure is better
개발자들은 특히 Actionscript3.0 의 object-oriented structure 에 만족하고 있다. 3.0은 runtime typing, class, package, namespace 그리고 정밀하게 이루어져 있는 이벤트 모델을 포함하고 있다. Actionscript3.0 을 프로그래밍 하는 것은 Java 나 C# 과 같은 high-level 언어로 프로그래밍 하는 것과 같은 수준이다. Actionscript3.0 의 새로운 기능들은 당신의 코드를 보다 단단하게, 가독성 있게 그리고 확장 가능하게 만들어 준다. 만약 당신이 interactive designer 라면 이 기능들은 많이 사용하지 않을지도 모른다. 하지만 당신이 프로그램능력의 향상을 원할때 이 언어의 구조는 당신을 지원해 줄것이다. - It’s more enjoyable to work with ActionScript 3.0
지금 까지 언급한 모든 내용을 읽고도 여전히 Actionscript3.0 을 배울 마음이 안생긴다면 그냥 Actionscript2.0 으로 프로젝트를 진행하기를 바란다. 그러나 Flash platform 이 진화하고 앞으로 나올 새로운 기술들은 모두 Actionscript 3.0이 사용될 것이다. 예를들어 Flex 3 이나 Adobe AIR 는 Actionscript3.0 을 필요로 한다. 그리고 만약 당신이 이러한 기술들을 이용한 작업을 원한다면 Actionscript3.0을 사용하는 것 외에는 선택의 여지가 없을 것이다.
Quote from Action-Scripter | Seonggyu Gang & 동강 :: 네이버 블로그
Adobe – Developer Center : Six reasons to use ActionScript 3.0Sorry, English translation is not available on this post.ごめんなさい。このポストには日本語の翻訳を提供しません。 - Your skills will be in high demand