<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>세계의끝과 플래시 원더랜드 &#187; CS5</title>
	<atom:link href="http://ufx.kr/blog/tag/cs5/feed" rel="self" type="application/rss+xml" />
	<link>http://ufx.kr/blog</link>
	<description>Flash + ActionScript &#38; Design</description>
	<lastBuildDate>Fri, 27 Jan 2012 21:51:23 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>액션스크립트 3.0 입문자를 위한 F1 도움말(레퍼런스) 보는 방법</title>
		<link>http://ufx.kr/blog/378</link>
		<comments>http://ufx.kr/blog/378#comments</comments>
		<pubDate>Wed, 13 Jan 2010 06:30:09 +0000</pubDate>
		<dc:creator>세계의끝</dc:creator>
				<category><![CDATA[고수들은 가르쳐주지 않는 AS3.0 입문]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[ASdoc]]></category>
		<category><![CDATA[CS4]]></category>
		<category><![CDATA[CS5]]></category>
		<category><![CDATA[F1]]></category>
		<category><![CDATA[개발자]]></category>
		<category><![CDATA[고수들은 가르쳐주지 않아요]]></category>
		<category><![CDATA[도움말]]></category>
		<category><![CDATA[레퍼런스]]></category>
		<category><![CDATA[메서드]]></category>
		<category><![CDATA[상속]]></category>
		<category><![CDATA[속성]]></category>
		<category><![CDATA[이벤트]]></category>
		<category><![CDATA[클래스]]></category>
		<category><![CDATA[패키지]]></category>

		<guid isPermaLink="false">http://ufx.kr/blog/?p=378</guid>
		<description><![CDATA[우리가 흔히 F1 또는 레퍼런스라고 부르는 플래시 도움말이 있습니다. 개발자들 사이에서는 이 레퍼런스의 형식을 ASDoc(ActionScript Documentation) 이라고 부르기도 합니다.[01] Java 개발자들을 위한 JavaDoc 도 구경해볼까요? J2EE 의 1.4 버전 레퍼런스 입니다. 구글에서 개발한 스마트폰 운영체제인 안드로이드도 개발자들을 위한 레퍼런스를 제공하고 있는데, 이것의 형태도 크게 다르지 않습니다. 레퍼런스란 필요한 부분을 검색하여 원하는 정보를 찾아보는 대상을 의미 [...]]]></description>
			<content:encoded><![CDATA[<p>우리가 흔히 F1 또는 레퍼런스라고 부르는 <a href="http://help.adobe.com/ko_KR/AS3LCR/Flash_10.0/" target="_blank">플래시 도움말</a>이 있습니다. 개발자들 사이에서는 이 레퍼런스의 형식을 ASDoc(ActionScript Documentation) 이라고 부르기도 합니다.<sup>[<a href="http://ufx.kr/blog/378#footnote_0_378" id="identifier_0_378" class="footnote-link footnote-identifier-link" title="ASDoc은 작은의미로 Flex SDK에 포함된 레퍼런스를 만드는 프로그램의 이름이기도 한데, 이 포스트에서는 그것보다는 큰 의미로 레퍼런스와 동일한 의미로 사용하였습니다.">01</a>]</sup><br />
Java 개발자들을 위한 JavaDoc 도 구경해볼까요? <a href="http://java.sun.com/j2ee/1.4/docs/api/" target="_blank">J2EE 의 1.4 버전 레퍼런스</a> 입니다.<br />
구글에서 개발한 스마트폰 운영체제인 <a href="http://developer.android.com/reference/packages.html" target="_blank">안드로이드도 개발자들을 위한 레퍼런스</a>를 제공하고 있는데, 이것의 형태도 크게 다르지 않습니다.</p>
<p><img class="alignleft" title="reference" src="http://farm3.static.flickr.com/2547/3794323660_09ab487421_m.jpg" alt="" width="240" height="171" />레퍼런스란 필요한 부분을 검색하여 원하는 정보를 찾아보는 대상을 의미 합니다. 레퍼런스는 그 자체로 이미 사전과 같은 역할을 하는 것인데 개발자 출신이 아닌 플래시 액션스크립터 지망생들은 이 레퍼런스를 어려워 하여 멀리하고 오히려 포털 검색으로 지식을 얻으려고 하는 경향이 있습니다.<br />
차라리 검색을 구글에서라도 하면 상위에 리스트업 되는 Adobe 의 레퍼런스를 보게 될 텐데, 그것도 아니고 국내 포털 검색으로 주로 지식검색이나 카페에서 자신과 딱 맞는 케이스의 질문과 답변을 얻으려고 하니 참으로 딱한 상황이 아닐 수 없습니다. 이러한 경향은 지식검색이 만능이라고 생각하는 우리나라에서 좀더 두드러지는 경향이기도 하지만, 외국이라고 예외는 아니어서 <a href="http://ko.wikipedia.org/wiki/RTFM" target="_blank">RTFM 라는 재미있는 관용구</a>도 있습니다.</p>
<p>어쨌건 이러한 형태의 레퍼런스에 친숙해 진다면 다른 언어로 개발하는 것도 꿈속의 일만은 아니게 되는것이죠. 우리에겐 레퍼런스가 있으니까요.</p>
<p><span id="more-378"></span></p>
<p><img class="alignnone size-full wp-image-379" title="reference_01_layout" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_01_layout.gif" alt="reference_01_layout" width="600" height="369" /></p>
<h3>1. 패키지 영역</h3>
<p>패키지는 여러 클래스의 묶음 단위라고 이해하면 어렵지 않습니다. 우리가 가장 많이 사용하는 flash.display 패키지를 클릭하면 아래쪽 클래스 영역의 내용이 flash.display 항목들로만 필터링 되서 보여지고, 본문 영역도 그에 맞게 화면이 변경 됩니다.<br />
레퍼런스에서 패키지 영역은 일종의 대분류 목차와 같은 성격을 가지고 있습니다. 클래스 이름을 알고 있다면 굳이 클릭할 필요가 없는 영역이기도 하죠.</p>
<p>그러나 이 영역에만 있어 별도로 살펴봐야할 항목도 몇 가지 있습니다.<br />
스크롤바를 죽 내려보면 &#8220;패키지&#8221; 부분과 &#8220;언어요소&#8221; 부분, 그리고 &#8220;부록&#8221; 부분이 있는데 이것들 중 아래에 나열한 것들은 한번 쯤 훑어 보고 뭐가 있는지는 파악해 놓는게 좋습니다.</p>
<ul>
<li>최상위 : import 를 사용하지 않아도 바로 사용할 수 있는 클래스들과 전역상수, 전역함수 들이 나열되어 있습니다. 우리가 흔히 사용하는 Array, String, Number 등이 최상위 클래스에 속합니다.</li>
<li>연산자 : 사실상 액션스크립트의 모든 기호는 연산자 입니다. 게다가 new 같은 것들도 연산자의 범주에 들어갑니다.</li>
<li>명령문, 키워드 및 지시문 : 프로그래밍의 형식이나 골격을 구성하는 것들 입니다. package, class, public, var, this 등이 여기에 속합니다.</li>
<li>ActionScript 2.0 마이그레이션 : AS2.0의 클래스, 메서드, 속성이 AS3.0 으로 어떻게 변경 되었는지 리스트업 되어있습니다. (이 문서가 여기 있다는것만 알면 됩니다.)</li>
</ul>
<p>나머지 부분들은 읽어본다면 어떤 형태로건 도움이 될 수 있지만, 딱히 읽지 않아도 지장이 없는 부분이므로 대략 스물스물 넘어가도 되겠습니다.</p>
<h3>2. 클래스 영역</h3>
<p>이 영역은 크게 클래스와 인터페이스 항목으로 나뉘는데, 이 중 이탤릭체로 되어 있는 애들이 인터페이스 입니다. AS3.0을 처음 배워나가는 과정에서는 인터페이스를 몰라도 괜찮기도 하고, 이 포스트의 내용에서 벗어나는 내용이므로 다음 기회를 잡아 설명하도록 하겠습니다.</p>
<p>이 영역을 스크롤 해서 보면 액션스크립트에서 사용하는 모든 클래스들이 나열되어 있습니다. 클래스의 이름을 알고 있다면, 딱히 검색할 필요 없이 클릭으로 본문 영역에 필요한 정보를 펼칠 수가 있습니다.</p>
<h3>3. 본문 영역</h3>
<p>우리가 가장 흔하게 사용하는 객체인 Sprite 를 펼쳐보겠습니다.</p>
<p><img class="alignnone size-full wp-image-380" title="reference_02_sprite_head" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_02_sprite_head.png" alt="reference_02_sprite_head" width="600" height="443" /></p>
<h4>(1) 패키지</h4>
<p>이 클래스가 어디 소속인지 알려줍니다. Sprite 클래스는 물리적으로 flash.display.Sprite 라는 경로에 있다는 것을 의미하죠. 실제로 액션스크립트의 내장 클래스는 플래시 플레이어에 내부에 들어 있으므로 실재로  Sprite.as 파일이 존재하지는 않습니다만,<sup>[<a href="http://ufx.kr/blog/378#footnote_1_378" id="identifier_1_378" class="footnote-link footnote-identifier-link" title="모든 내장 클래스들이 마찬가지 입니다.">02</a>]</sup> 실제로 파일이 존재한다고 생각해도 무방합니다.</p>
<h4>(2) 클래스</h4>
<p>클래스 정의를 표현 합니다. Sprite 클래스의 경우 어디서나 자유롭게 불러 사용할 수 있는 public 접근 제한을 가지고 있으며, class 라는 것을 의미합니다.</p>
<h4>(3) 상속</h4>
<p>이 클래스의 상속 체인을 모두 표시해 줍니다. Sprite 클래스가 정말 저렇게 5단계에 걸친 많은 클래스를 상속하고 있냐고요? 네 정말 그렇습니다. Sprite 는 이벤트를 발생시키기도 해야하고(EventDispatcher), 시각적인 표현도 해야하고(DisplayObject), 마우스 인터랙션도 받아야 하는데다가(InteractiveObject), Sprite 안에 있는 여러 가지 다른 요소들의 위 아래 순서도 정의해야 하기 때문에(DisplayObjectContainer) 해야 할 일이 꽤나 많은편이죠.</p>
<h4>(4) 하위클래스</h4>
<p>Sprite 클래스를 상속한 클래스의 목록 입니다.</p>
<h4>(5) 언어 버전</h4>
<p>이 클래스를 사용할 수 있는 액션스크립트의 버전입니다.  Sprite 의 경우에는 ActionScript 3.0 부터 사용할 수 있다는 의미입니다.</p>
<p>여기서 잠깐 여러분의 이해를 돕고자 재미있는 이야기를 하나 꺼내보겠습니다.<br />
현재 이 레퍼런스를 사용할 수 있는 ActionScript 버전 중에는 3.0이 가장 낮은 버전입니다. &#8220;당연하잖아!&#8221; 라고 생각하시는 분들에게 아래와 같이 질문을 드려볼까요?</p>
<p><span style="color: #ff6600;">&#8220;AS2.0 의 MovieClip 과 AS3.0 의 MovieClip 은 같은 클래스인가요, 다른 클래스 인가요?&#8221;</span></p>
<p>우리는 AS2.0과 3.0 모두에서 MovieClip 을 사용할 수 있고, 사용 방법 또한 같으며, 성질도 다르지 않습니다. 그러나 아래의 스크린샷을 볼까요?</p>
<p><img class="alignnone size-full wp-image-381" title="reference_03_as3movieclip" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_03_as3movieclip.png" alt="reference_03_as3movieclip" width="600" height="222" /></p>
<p>그런데 뭔가 이상하죠? MovieClip 은 분명 AS2.0 에서도 사용할 수 있는데, 어째서 언어 버전이 ActionScript 3.0 이라고 써 있으며 런타임 버전 AIR 1.0, Flash Player 9 일까요?</p>
<p><img class="alignnone size-full wp-image-382" title="reference_04_as2movieclip" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_04_as2movieclip.png" alt="reference_04_as2movieclip" width="601" height="257" /></p>
<p>그 해답은 AS2.0 레퍼런스를 보면 알 수 있습니다. 이걸 보면 AS2.0의 MovieClip 과 AS3.0의 MovieClip 은 <span style="color: #ff6600;">클래스 이름은 같지만</span> 엄밀히 말하면 <span style="color: #ff6600;">별개의 클래스</span>라는 것을 알 수 있습니다.</p>
<p>우선 상속 체인이 완전히 다릅니다. AS2.0은 Object 에서 단 한번 상속했을 뿐이지만, AS3.0의 MovieClip 은 위에서 살펴본 Sprite 를 상속 했으니까 무려 6단계의 상속 체인을 가지고 있습니다.</p>
<p>또한 속성도 다르죠. AS2.0이 AS3.0으로 바꼈어도 MovieClip 이라는 클래스 명은 동일하기 때문에 개발의 편의를 위하여 대부분의 속성명을 동일하게 유지했지만, 속성명 앞에 있던 _ (언더 바 또는 언더 스코어) 들이 사라졌습니다. 다르게 말한다면 속성이 죄다 바뀐거라고 할 수 있습니다.</p>
<h4>(6) 런타임 버전</h4>
<p>Flash Player 또는 AIR 런타임<sup>[<a href="http://ufx.kr/blog/378#footnote_2_378" id="identifier_2_378" class="footnote-link footnote-identifier-link" title="AIR의 R은 이미 Runtime 의 이니셜 입니다만, 여기서는 런타임이라는 것을 강조하기 위하여 상가&amp;#8221;집&amp;#8221; 식의 중복을 사용했습니다.">03</a>]</sup> 의 최소 요구 버전을 나타냅니다.<br />
초보분들은 Flash Player 의 버전과 ActionScript 의 버전, 그리고 Flash IDE의 CS 버전은 서로 다른 것을 이야기하는 것이므로 혼동하지 마시기 바랍니다.</p>
<p><img class="alignnone size-full wp-image-383" title="reference_05_publishing_menu" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_05_publishing_menu.png" alt="reference_05_publishing_menu" width="476" height="650" /></p>
<h4>(7) 그리고 개괄적 설명</h4>
<p>이 부분은 이 클래스의 성격과 특성을 나타내므로 새로운 클래스를 만나게 되면 한번씩은 정독 해주는것을 권장합니다.</p>
<h4>(8) 참고 사항</h4>
<p>이 부분은 레퍼런스에 존재하는 관련 사항의 링크나 <a href="http://help.adobe.com/ko_KR/ActionScript/3.0_ProgrammingAS3" target="_blank">Adobe Flash용 Adobe ActionScript 3.0 프로그래밍</a>쪽의 관련 페이지 링크를 제공하기도 합니다. 문제 해결에 결정적인 도움을 주기도 하는 부분이니 디버깅 할 경우라면 주의깊게 살펴보세요.</p>
<p style="text-align: center;">* * * * *</p>
<p style="text-align: center;">여기부터는 본문의 속성, 메서드, 이벤트 목록을 표시하는 부분 입니다.</p>
<h4 style="text-align: center;">- Public 속성 -</h4>
<p><img class="alignnone size-full wp-image-384" title="reference_06_properties" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_06_properties.png" alt="reference_06_properties" width="601" height="327" /></p>
<p>&#8220;상속되는 Public 속성 표시&#8221; 는 클릭하면 &#8220;상속되는 Public 속성 숨기기&#8221;로 링크가 변경됩니다. 이 기능은 클래스가 상속을 하게 되면 부모의 속성, 메서드, 이벤트도 모두 가지게 되기 때문에 상속체인상의 하위 클래스로 갈수록 속성, 메서드, 이벤트의 숫자가 상당히 많아집니다. Sprite 만 봐도 상당히 많은 숫자를 볼 수 있죠.</p>
<p>위 그림에서 우리가 흔하게 사용하는 alpha 속성을 잠시 살펴볼까요? alpha 는 소수점 표시를 해야하기 때문에 Number 의 데이터 형을 가지고 있다는 것을 표시하고 있고, 간단한 설명도 볼 수 있습니다.<br />
오른쪽을 보면 &#8220;다음에 의해 정의됨&#8221; 항목에 DisplayObject 라고 되어 있군요. 즉, alpha 라는 속성은 DisplayObject 에서 정의되어 있으므로 상속 체인상에서 DisplayObject 를 포함한 InteractiveObject, DisplayObjectContainer, Sprite 의 자식 클래스에서 사용 가능하고,  상위 클래스인 EventDispatcher 나 Object 에서는 사용할 수 없는 속성이 되겠습니다.</p>
<p><strong>여기서 잠깐 !</strong></p>
<p>정말 쌩초보스럽지만 정말 중요한 질문하나가 있습니다.<br />
속성은 어떻게 사용하나요?<br />
코드로 보면 아래와 같습니다.</p>

<div class="wp_syntax"><table><tr><td class="line_numbers"><pre>0
1
2
3
4
5
6
7
8
9
10
</pre></td><td class="code"><pre class="actionscript3" style="font-family:monospace;"><span style="color: #009900;">// 객체 생성 및 초기화</span>
<span style="color: #6699cc; font-weight: bold;">var</span> instance<span style="color: #000000; font-weight: bold;">:</span><span style="color: #004993;">Sprite</span> = <span style="color: #0033ff; font-weight: bold;">new</span> <span style="color: #004993;">Sprite</span><span style="color: #000000;">&#40;</span><span style="color: #000000;">&#41;</span>;
&nbsp;
<span style="color: #009900;">// 객체 속성에 값을 대입함</span>
<span style="color: #009900;">// buttonMode 속성은 Boolean 데이터 형이므로 true 아니면 false 둘 중 하나를 대입해야 함</span>
<span style="color: #009900;">// 객체.속성 = 속성값</span>
instance.<span style="color: #004993;">buttonMode</span> = <span style="color: #0033ff; font-weight: bold;">true</span>;
&nbsp;
<span style="color: #009900;">// 객체 속성을 참조함</span>
<span style="color: #009900;">// 출력 : true</span>
<span style="color: #004993;">trace</span><span style="color: #000000;">&#40;</span> instance.<span style="color: #004993;">buttonMode</span> <span style="color: #000000;">&#41;</span>;</pre></td></tr></table></div>

<p>속성은 클래스 내부에서 getter/setter 로 구현합니다. 읽기전용, 쓰기전용, 읽기쓰기 모두가능의 3가지가 있지만 쓰기전용이라는 것은 실제 사용할 일이 별로 없으므로, 일반적으로 getter 메서드만 있는 읽기전용, getter/setter 둘다 있는 읽기쓰기 모두가능한 두 가지 속성으로 나뉜다고 볼 수 있습니다.<br />
위에서 코드로 예를 든 것과 같이 buttonMode 속성의 경우에는 읽기/쓰기가 모두 가능한 속성이므로 속성에 값을 대입할 수도 있고 값을 참조할 수도 있지만, numChildren 속성 같은 경우는 읽기전용 이므로 대입연산자 = 를 통해 값을 입력할 수 없는 차이가 있습니다.</p>
<p><img class="alignnone size-full wp-image-385" title="reference_07_properties_numchildren" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_07_properties_numchildren.png" alt="reference_07_properties_numchildren" width="600" height="47" /></p>
<p>getter/setter 는 어려운 내용은 아니지만 개념에 대한 이해가 필요하므로 이에대한 설명을 나중에 별도의 포스팅을 하겠습니다.</p>
<h4 style="text-align: center;">- Public 메서드 -</h4>
<p><img class="alignnone size-full wp-image-386" title="reference_08_method" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_08_method.png" alt="reference_08_method" width="601" height="219" /></p>
<p>메서드 역시 부모로부터 상속한 모든 메서드를 사용할 수 있습니다. Sprite 클래스에서 정의한 메서드는 Sprite(), startDrag(), stopDrag() 이 세 가지 뿐이군요.<sup>[<a href="http://ufx.kr/blog/378#footnote_3_378" id="identifier_3_378" class="footnote-link footnote-identifier-link" title="Flash Player 10.1 부터는 모바일 디바이스를 위한 터치관련 메서드들이 조금 더 추가됩니다.">04</a>]</sup> 나머지는 모두 부모 클래스에서 정의한 메서드들이라는 의미 입니다.<br />
위 그림중 우리가 흔하게 사용하는 addChild() 메서드를 살펴보도록 하죠. 함수연산자 () 안에 DisplayObject 타입의 객체가 들어와야 한다는 것을 나타내고 있습니다. child 라는 이름 자체는 의미가 없습니다. 다만 메서드명이 addChild() 이므로 add 하는 대상이 무엇인지 힌트를 주고 있는 것이죠.<br />
그리고 addChild() 메서드가 반환하는 값 역시 DisplayObject 라고 되어있죠? addChild() 의 파마미터에 넣은 child 가 메서드 실행의 결과로 반환됩니다.</p>
<h4 style="text-align: center;">- 이벤트 -</h4>
<p>이벤트는 addEventListener() 나 dispatchEvent() 메서드를 통해 사용하게 됩니다. dispatchEvent() 는 어떻게 사용하는 건데? 라는 질문을 하고 싶은 분이라고 하더라도 나중에 필요할 때 알게 됩니다. addEventListener() 만 사용할 줄 알아도 당장 AS3.0에 입문하는데 지장 없으니 걱정하지 마세요.</p>
<p><img class="alignnone size-full wp-image-387" title="reference_09_events" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_09_events.png" alt="reference_09_events" width="600" height="207" /></p>
<p>이벤트 목록의 오른쪽에 있는 &#8220;다음에 의해 정의됨&#8221;을 보면 Sprite 클래스에서는 정의한 이벤트가 없고 모두 부모 클래스에서 상속한 이벤트 뿐이군요. 사용자의 인터랙션, 즉 마우스나 키보드 입력에 의한 이벤트는 InteractiveObject 에서 상속했고, 인터랙션과 관계 없는 이벤트는 DisplayObject 에서 상속했습니다. 요약설명 부분에 [브로드캐스트 이벤트] 라고 표시되어 있는 것들 중에 몇몇 이벤트는 EventDispatcher 까지 거슬러 올라가기도 합니다.<br />
브로드캐스트 이벤트가 뭔지 궁금한 분은 <a href="http://help.adobe.com/ko_KR/AS3LCR/Flash_10.0/flash/display/DisplayObject.html" target="_blank">여기</a>를 클릭해서 &#8220;DisplayObject 클래스에는 몇 가지 브로드캐스트 이벤트가&#8230;&#8221; 부분을 읽어보세요. 아직까지는 딱히 몰라도 관계 없습니다.</p>
<p style="text-align: center;">* * * * *</p>
<p style="text-align: center;">여기부터는 목록 더 아랫 부분의 상세 설명 본문 부분 입니다.</p>
<h4 style="text-align: center;">- 속성 정보, 생성자 정보, 메서드 정보 -</h4>
<p><img class="alignnone size-full wp-image-388" title="reference_10_properties_view" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_10_properties_view.png" alt="reference_10_properties_view" width="600" height="225" /></p>
<p>레퍼런스의 더 아랫 부분은 위의 이미지와 같은 현재 선택한 클래스의 속성, 메서드, 이벤트에 대한 좀더 자세한 설명이 있습니다. 각 속성이나 메서드의 상세 설명은 사실 알고 있으면 좋지만, 레퍼런스의 모든 부분을 읽는다는건 입문자에겐 불가능할 뿐더러, 읽는다 하더라도 전체적인 그림이 머리속에 그려지지 않은 상태에서는 사실 무슨 의미인지 이해가 되지 않는 경우가 많습니다. 그러므로 아래의 두 가지 방법 중 하나를 선택하는 것이 현실적인 방법 입니다.</p>
<ol>
<li>실제 코딩을 하면서 처음보는 속성이나 메서드가 나오면 레퍼런스에서 찾아서 한번 읽어 보는, 약간 더디지만 확실한 학습 방법.</li>
<li>일단 코딩하면서 문제가 생기게 되면 문제가 생긴 부분의 레퍼런스를 읽어보는, 뭔가 빼먹을 가능성이 있긴 하지만 좀더 빠른 방법.</li>
</ol>
<p>둘 중 자신에게 맞다고 생각하는 방법으로 그때그때 맞게 읽어 나가면 되겠습니다.<br />
중요한 것은 무작정 레퍼런스나 책을 정독 또는 독파한다고 실력이 느는 것이 아니라, 실제 코딩을 해 나가면서 여러가지 문제에 봉착해 보고 해결 방법을 습득해 나가야 한다는 것입니다. <span style="color: #ff6600;">코딩 한줄 하지 않고 실력이 저절로 늘수는 없거든요.</span></p>
<p>본문 영역 중간중간에 해당 속성과 메서드에 해당하는 예제 코드가 있고 가장 아래쪽에 현재 선택된 클래스를 아울러 설명해 주는 예제 코드도 있으니 나중에 필요할 때 이용하면 되겠습니다.<br />
커뮤니티 질문게시판에 올라오는 90%는 이미 레퍼런스에 있는 내용입니다. 버젓이 질문내용과 동일한 코드 예제가 있는 경우도 허다하죠. 다만 어디 있는지 못찾는 것이거나, 찾기 귀찮거나 둘 중 하나입니다.</p>
<p>자, 이렇게 레퍼런스의 구석구석을 설명을 통해 알아 봤습니다. 이제는 레퍼런스의 특정 부분의 의미를 몰라서 레퍼런스를 기피하는 현상은 좀 줄어드리라 기대해 봅니다.</p>
<p style="text-align: center;">* * * * *</p>
<p>글을 쓰는 현재 시점(2010년 1월)은 Flash CS5 가 나오기 직전의 시점이고 CS5 가 베타 버전으로 존재합니다. Flash Player 는 10.1 이 되는군요. 언어 버전은 AS3.0 으로 현재와 변화가 없으므로 골격이나 구조의 변화는 없고 마이너한 요소들이 추가되었습니다.</p>
<p>위에서도 잠깐 설명했지만 액션스크립트의 내장 클래스들은 Flash Player 에 존재합니다. CS4, CS5 와 같은 Flash IDE 버전에 따라 액션스크립트 API가 버전이 올라간다고 생각하기 쉽지만 그렇지 않습니다. Flash IDE는 저작 환경일 뿐이고 액션스크립트 버전과는 직접적인 관계가 없습니다.<sup>[<a href="http://ufx.kr/blog/378#footnote_4_378" id="identifier_4_378" class="footnote-link footnote-identifier-link" title="그러나 한편으로는 Flash IDE버전에 올라가면 Flash Player 의 버전도 같이 올라가는 경우가 대부분이므로 완전히 별개라고 보기에도 어려움이 있긴 합니다.">05</a>]</sup></p>
<p>마지막으로 <a href="http://help.adobe.com/en_US/FlashPlatform/beta/reference/actionscript/3/frames.html" target="_blank">Flash CS5와 함께 공개될 새로운 레퍼런스</a>의 모습을 구경해 볼까요?<br />
CS4 버전의 현재 레퍼런스와 크게 달라지는 부분은 없습니다. Beta 라고 군데군데 명시되어 있고, Flex Builder 3 에서 Flash Builder 4 로 명칭이 변경된 만큼 Flex 에서 사용하던 mx 패키지가 들어왔습니다. (예전엔 서로 별개의 레퍼런스처럼 취급되었죠)</p>
<div id="attachment_389" class="wp-caption alignnone" style="width: 600px"><img class="size-full wp-image-389 " title="reference_11_filtering_runtimes" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_11_filtering_runtimes.png" alt="reference_11_filtering_runtimes" width="590" height="437" /><p class="wp-caption-text">베타 레퍼런스에 도입된 필터링 시스템 중 Runtimes 필터링</p></div>
<div id="attachment_390" class="wp-caption alignnone" style="width: 600px"><img class="size-full wp-image-390" title="reference_12_filtering_products" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_12_filtering_products.png" alt="reference_12_filtering_products" width="590" height="437" /><p class="wp-caption-text">Products 의 필터링</p></div>
<p>이전에는 없던 필터링 기능이 눈에 띄는데, Runtimes 으로 Flash Player와 AIR를 구분하여 버전별로 필터링 할 수 있게 했고, Products 에는 Flex SDK 버전과 Flash IDE 버전 그리고 Blaze 서버와 LiveCycle, ColdFusion 까지, 액션스크립트와 관련을 가지는 다른 프로그램들의 레퍼런스들을 총 망라 하고 있습니다.<br />
그 결과 왼쪽 패키지 목록과 클래스 목록에서 다루는 패키지와 클래스의 갯수가 꽤 많이 늘어 난 것처럼 보이는데, 적절한 필터링을 해서 사용하면 되겠습니다.</p>
<div id="attachment_391" class="wp-caption alignnone" style="width: 600px"><img class="size-full wp-image-391" title="reference_14_multitouch" src="http://ufx.kr/blog/wp-content/uploads/2010/01/reference_14_multitouch.png" alt="reference_14_multitouch" width="590" height="437" /><p class="wp-caption-text">Flash Player 10.1 에 새로 추가된 Multitouch 클래스</p></div>
<p>이렇게 버전이 올라서 새로운 클래스가 업데이트 되어도 현재의 레퍼런스와는 크게 달라지는 점이 없습니다. 현재의 레퍼런스를 읽는데 어려움이 없다면 앞으로 훨씬 순조로운 개발을 할 수 있게되겠죠.</p>
<ol class="footnotes"><li id="footnote_0_378" class="footnote">ASDoc은 작은의미로 Flex SDK에 포함된 레퍼런스를 만드는 프로그램의 이름이기도 한데, 이 포스트에서는 그것보다는 큰 의미로 레퍼런스와 동일한 의미로 사용하였습니다.</li><li id="footnote_1_378" class="footnote">모든 내장 클래스들이 마찬가지 입니다.</li><li id="footnote_2_378" class="footnote">AIR의 R은 이미 Runtime 의 이니셜 입니다만, 여기서는 런타임이라는 것을 강조하기 위하여 상가&#8221;집&#8221; 식의 중복을 사용했습니다.</li><li id="footnote_3_378" class="footnote">Flash Player 10.1 부터는 모바일 디바이스를 위한 터치관련 메서드들이 조금 더 추가됩니다.</li><li id="footnote_4_378" class="footnote">그러나 한편으로는 Flash IDE버전에 올라가면 Flash Player 의 버전도 같이 올라가는 경우가 대부분이므로 완전히 별개라고 보기에도 어려움이 있긴 합니다.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://ufx.kr/blog/378/feed</wfw:commentRss>
		<slash:comments>12</slash:comments>
		</item>
		<item>
		<title>플래시를 다루는 디자이너가 갖춰야 할 기본 환경 두 가지</title>
		<link>http://ufx.kr/blog/364</link>
		<comments>http://ufx.kr/blog/364#comments</comments>
		<pubDate>Sat, 26 Dec 2009 05:58:03 +0000</pubDate>
		<dc:creator>세계의끝</dc:creator>
				<category><![CDATA[개발환경]]></category>
		<category><![CDATA[Adobe]]></category>
		<category><![CDATA[CS4]]></category>
		<category><![CDATA[CS5]]></category>
		<category><![CDATA[fla]]></category>
		<category><![CDATA[Flash IDE]]></category>
		<category><![CDATA[개발자]]></category>
		<category><![CDATA[디자이너]]></category>

		<guid isPermaLink="false">http://ufx.kr/blog/?p=364</guid>
		<description><![CDATA[1. Flash IDE[01] 는 최신 버전을 사용하세요. 플래시 개발자들은 최신의 API 활용과 Flash Player 컴파일을 위해 Flash IDE 를 최신 버전으로 항상 유지 합니다.(유지해야 합니다) 그런 반면, Flash IDE 버전이 항상 구 버전인 디자이너들도 있죠. 디자이너들은 대체로 보수적이고 한번 습득한 지식을 계속 움켜쥐고 놓지 않으려는 습성이 강합니다.[02] 그들은 새로운 기술에도 둔감하고 기존에 잘 사용하고 있던 [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignleft size-full wp-image-133" title="fl_icon" src="http://ufx.kr/blog/wp-content/uploads/2009/05/fl_icon.png" alt="fl_icon" width="250" height="250" /><span style="color: #00ccff;">1. Flash IDE<sup>[<a href="http://ufx.kr/blog/364#footnote_0_364" id="identifier_0_364" class="footnote-link footnote-identifier-link" title="우리가 흔히 말하는 Flash CS4, CS5 같은 것들을 Flash IDE (Integrated Development Environment : 통합 개발 환경)라고 말합니다.">01</a>]</sup> 는 최신 버전을 사용하세요.</span></p>
<p>플래시 개발자들은 최신의 API 활용과 Flash Player 컴파일을 위해 Flash IDE 를 최신 버전으로 항상 유지 합니다.(유지해야 합니다)</p>
<p>그런 반면, Flash IDE 버전이 항상 구 버전인 디자이너들도 있죠. 디자이너들은 대체로 보수적이고 한번 습득한 지식을 계속 움켜쥐고 놓지 않으려는 습성이 강합니다.<sup>[<a href="http://ufx.kr/blog/364#footnote_1_364" id="identifier_1_364" class="footnote-link footnote-identifier-link" title="손에 쥐고 있는 것이 썩은 도끼 자루인지도 모르고 말이죠.">02</a>]</sup> 그들은 새로운 기술에도 둔감하고 기존에 잘 사용하고 있던 어떤 시스템이나 tool을 어지간하면 바꾸려 하지 않습니다.<br />
어느 정도냐 하면, 지금 글을 쓰고 있는 시기가 2009년에서 2010년으로 바뀌는 시점이고 곧 Flash CS5 버전이 나올텐데, 아직도 Flash 8 을 사용하는 디자이너들이 많습니다. 심지어 MX 2004 버전을 사용 하는 경우도 있더군요. 아무리 AS3.0 을 사용할 일 없는 디자이너라고 해도 말이죠.</p>
<p><span id="more-364"></span></p>
<p>문제는 이 두 부류의 사람들이 사용하는 Flash IDE의 버전이 다른데서 옵니다. 아시다시피 fla 파일 포맷은 하위 호환성이 없으므로, 상위 버전에서 만든 fla 파일을 별도로 하위 버전에서 열리게끔 한단계 낮게 저장<sup>[<a href="http://ufx.kr/blog/364#footnote_2_364" id="identifier_2_364" class="footnote-link footnote-identifier-link" title="이 저장 방법은 정말 매번 귀찮은 작업입니다.">03</a>]</sup> 하지 않는 이상 Ctrl + S 로 저장하면 하위 버전에서 fla 를 열 수가 없습니다.</p>
<p>상위 버전으로도 한 단계는 가능하지만 두 단계 이상의 상위버전에서는 불가능하죠. Flash 8에서 저장한 fla 파일은 CS4에서 열리지 않습니다.</p>
<p>플래시 같이 기술의 변화가 급격한 성향을 띄는 프로그램은 항상 최신 버전을 사용해야 함을 잊지 마세요.</p>
<p style="text-align: center;">***</p>
<p><span style="color: #00ccff;">2. 필요하다면 한글판 Flash IDE를 사용하세요.</span></p>
<p>컴파일 에러나, 대화상자를 읽지 못하는 사람들이 있습니다. 다른 이유가 있는게 아니라 단지 영어를 해석 못해서라면 이런 분들은 한글판 Flash IDE를 사용해야 합니다. 한글판은 뭔가 어색하고 뽀대가 안난다는 이유로 영문판을 고집하는 걸로 알고 있습니다만, 결코 컴파일 에러의 올바른 이해보다 중요하지 않습니다.</p>
<p>저는 모든 Adobe 프로그램들을 영문판으로 사용하지만,<sup>[<a href="http://ufx.kr/blog/364#footnote_3_364" id="identifier_3_364" class="footnote-link footnote-identifier-link" title="Photoshop 같은 경우는 한글판의 메뉴 명칭이 과도하게 번역되어 혼동을 일으키는 경우가 실제로 있습니다.">04</a>]</sup> 유일하게 Flash만은 한글판을 사용하고 있습니다. AS3.0을 공부할 때 컴파일 에러 메세지를 정확하게 이해하기 위해서 처음 사용하기 시작했고, 지금은 한글판을 사용할 필요가 거의 없어졌어도 오래 사용하다 보니 이미 한글판의 어색함 따위는 느껴지지 않기 때문에 그냥 계속 한글판을 사용하고 있습니다.</p>
<p>그리고 컴파일 에러 뿐만 아니라 여러가지 대화상자의 의미 또한 명확하게 이해할 수 있게 됩니다.</p>
<div id="attachment_367" class="wp-caption aligncenter" style="width: 388px"><img class="size-full wp-image-367" title="class_alert_in_english" src="http://ufx.kr/blog/wp-content/uploads/2009/12/class_alert_in_english.jpg" alt="class_alert_in_english" width="378" height="174" /><p class="wp-caption-text">영문판에서의 이 경고 메세지의 의미를 정확히 이해하십니까?</p></div>
<div id="attachment_366" class="wp-caption aligncenter" style="width: 515px"><img class="size-full wp-image-366" title="class_alert_in_english_mac" src="http://ufx.kr/blog/wp-content/uploads/2009/12/class_alert_in_english_mac.jpg" alt="맥OS 에서는 이렇게 보이는 경고 창 입니다." width="505" height="218" /><p class="wp-caption-text">맥OS 에서는 이렇게 보이는 경고 창 입니다.</p></div>
<p>의미를 모른 채 Don&#8217;t warn me again 에 체크한 후 OK 를 누르지는 않았나요?</p>
<div id="attachment_355" class="wp-caption aligncenter" style="width: 400px"><img class="size-full wp-image-355" title="making_class_alert" src="http://ufx.kr/blog/wp-content/uploads/2009/12/making_class_alert.png" alt="making_class_alert" width="390" height="203" /><p class="wp-caption-text">이런 대화상자의 경우 한글판에서 보면 명확하게 이해 됩니다.</p></div>
<ol class="footnotes"><li id="footnote_0_364" class="footnote">우리가 흔히 말하는 Flash CS4, CS5 같은 것들을 Flash IDE (Integrated Development Environment : 통합 개발 환경)라고 말합니다.</li><li id="footnote_1_364" class="footnote">손에 쥐고 있는 것이 썩은 도끼 자루인지도 모르고 말이죠.</li><li id="footnote_2_364" class="footnote">이 저장 방법은 정말 매번 귀찮은 작업입니다.</li><li id="footnote_3_364" class="footnote">Photoshop 같은 경우는 한글판의 메뉴 명칭이 과도하게 번역되어 혼동을 일으키는 경우가 실제로 있습니다.</li></ol>]]></content:encoded>
			<wfw:commentRss>http://ufx.kr/blog/364/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

