반응형
저는 크롬플러스는 주 개발환경으로 사용하고 있는데요...
크롬플러스는 자동으로 업데이트가 돼서 편리하게 사용하고 있었는데...
얼마전에 업데이트가 되면서 디버그용 플래시 플레이어로 실행이 안되는 것이었습니다...
물론 플래시 플레이어 디버거를 설치했구요...

그래서 옵션에 들어가보니... 기본 내장된 플래시 플레이어로 컨텐츠를 표시하더라구여~
그 플러그인을 사용중지를 하니... 다시 잘 됩니다. ~ ^^;

설정하는 방법은 아래와 같습니다.

크롬에서...
크롬 옵션 > 고급설정 > 플러그인 > 개별 플러그인 사용 안함 
위와 같이 선택하면 아래와 같은 페이지가 열리고 아래 그림처럼 사용중지를 해주시면 OK~



그리고 다른 플래시 플레이어 플러그인은 아래처럼 활성화해 놓으면 됩니다.

반응형
반응형
브라우저 정렬시 가로정렬은 문제가 없는데 세로정렬이 문제가 됩니다.
정확하게 세로가운데 정렬을 지원하는 기능이 없기 때문인데요...
지금 알려드리는 소스는 IE6에서도 잘 작동하는 소스입니다.
삽질하며 알아낸 소스라서 다른 더 좋은 방법이 있는지는 모르겠지만 여튼 공유해봅니다.

일단 소스를 보시죠...





SWF Tag

삽입될 swf는 크기가 960 x 720으로 상정했는데요. 
크기가 고정된 swf가 있어야합니다. 그 크기를 기준으로 가운데 정렬시킬 위치를 알아내기 때문입니다.
그리고 swf 태그를 감싸는 <div> 태그가 있고 그걸 또 감싸는 <div> 태그가 있고,
swf 태그 위에 <img> 태그가 있는데요...
IE6 에서는 top 속성을 %로 지정하면 적용되지 않는 버그가 있습니다. 
그래서 img를 하나 두고 img 높이를 50%로 하면 그만큼 swf를 내리기 때문에 가운데 정렬되는 효과가 있습니다.

자~ 이렇게 하면 가운데 정렬되는 <div>를 얻을 수 있습니다. 그 안에 플래시를 삽입하던 다른 어떤걸 삽입하던 하면 되겠죠?

반응형
반응형
마우스를 향하는 화살표 예제입니다. 간단하니 일단 보시죠~


그럼 이제부터 제작 해보겠습니다~
일단 화살표를 그려야겠죠? 아주 간단히 하나 그립니다.
package shape
{
	import flash.display.Sprite;
	
	/**
	 * 화살표 클래스, 오른쪽을 향하는 상태로 그려진다.
	 */
	public class DArrow extends Sprite
	{
		private var m_nWidth:Number;
		private var m_nHeight:Number;
		private var m_uColor:uint;
		
		/**
		 * 생성자
		 * @param p_nWidth 화살표 가로크기(길이)
		 * @param p_nHeight 화살표 세로크기(두께)
		 * @param p_uColor 화살표 색상
		 * @param 
		 */
		public function DArrow( p_nWidth:Number = 50, p_nHeight:Number = 50, p_uColor:uint = 0xffff00  )
		{
			super();
			
			m_nWidth = p_nWidth;
			m_nHeight = p_nHeight;
			m_uColor = p_uColor;
			
			init();
		}
		
		private function init():void
		{
			graphics.clear();
			
			var nWidthHalf:Number = m_nWidth / 2;
			var nHeightHalf:Number = m_nHeight / 2;
			var nHeightQuarter:Number = m_nHeight / 4;
			
			graphics.lineStyle( 1, 0, 1 );
			graphics.beginFill( m_uColor );
			graphics.moveTo( -nWidthHalf , -nHeightQuarter );
			graphics.lineTo( 0, -nHeightQuarter );
			graphics.lineTo( 0, -nHeightHalf );
			graphics.lineTo( nWidthHalf, 0 );
			graphics.lineTo( 0, nHeightHalf );
			graphics.lineTo( 0, nHeightQuarter );
			graphics.lineTo( -nWidthHalf, nHeightQuarter );
			graphics.lineTo( -nWidthHalf, -nHeightQuarter );
			graphics.endFill();
		}
	}
}

이제 위에 만들어진 화살표를 담아서 실행항 메인 클래스를 작성합니다.
package sample.ex_03_trigonometric
{
	import flash.display.Sprite;
	import flash.display.StageScaleMode;
	import flash.events.Event;
	
	import kr.uod.util.CCopyRightPosition;
	import kr.uod.util.FDrawCopyRight;
	import kr.uod.util.FDrawOutLine;
	
	import org.osmf.display.ScaleMode;
	
	import shape.DArrow;
	
	/**
	 * 마우스를 향하는 화살표 예제
	 */
	[SWF(backgroundColor="0xffffff", width="600", height="400", frameRate="30")]
	public class ArrowTowardMouse extends Sprite
	{
		private var m_dArrow:DArrow = new DArrow( 100, 50, 0xff0000 );
		
		public function ArrowTowardMouse()
		{
			super();
			
			stage.scaleMode = StageScaleMode.NO_SCALE;
			 
			init();
		}
		
		private function init():void
		{
			// 스테이지 외곽선 그리기
			FDrawOutLine( this );
			// 카피라이트
			FDrawCopyRight( this, "By LazyArtist" );
			
			// 화살표
			m_dArrow.x = stage.stageWidth / 2;
			m_dArrow.y = stage.stageHeight / 2;
			addChild( m_dArrow );
			
			this.addEventListener( Event.ENTER_FRAME, onEnterFrame );
		}
		
		private function onEnterFrame( e:Event ):void
		{
			var nPosX:int = mouseX - m_dArrow.x;
			var nPosY:int = mouseY - m_dArrow.y;

			// 화살표가 마우스를 향하게 하는 공식
			m_dArrow.rotation = Math.atan2( nPosY, nPosX ) * 180 / Math.PI;
		}
	}
}

여기서 가장 중요한 것은 53라인의 공식입니다. 
Math.atan() 처럼 비율을 파라미터로 전달하면 각도를 반환하는 것이 아니라
Math.atan2()는 y, x 파라미터를 받아서 각도(라디안)를 반환합니다. 플래시 좌표체계에 특화된 함수죠...
Math.atan2()를 사용하실때 주의할점은 Math.atan2( y, x ), 이렇게 y 값을 먼저 넣어준다는 점입니다. 
그렇지 않으면 플래시무비가 이상한 동작을 하게됩니다...

참~ 쉽죠잉~ ^^;

반응형
반응형
정식버전 출시되기를 기대하고 있었는데요...
현재 trial버전으로 설치해본 결과 실망입니다.
기존에 사용하던 편리한 기능들이 사라졌어요~
변수, 메서드 찾아주기와 디자인 모드 그리고 Help 기능...
젝일 망했습니다... ㅜㅜ;;

아이폰 신경쓰다가 정식제품을 이렇게 엉망으로 만들다니...


Previous, Next (변수, 메서드 찾아주기)
Previous, Next는 현재 열린 파일에서 동일한 변수, 메서드, 클래스 등을 찾아주는 기능입니다.
커서를 변수, 메서드, 클래스등에 위치시키면 아래와 같이 하일라이트가 표시되구요...






Previous, Next를 실행하면 이전, 다음 변수, 메서드, 클래스등으로 커서가 이동되는 기능입니다.
사용해보면 굉장히 편리해서 많이 쓰는 기능중 하나인데요... 
베타에서부터 생긴기능이라서 아주 잘 쓰고 있었는데... 정식버전에서 사라지다니... 
환경설정 단축키 지정에서 보면 항목은 있으나... 단축키를 지정하면 Previous Anotation, Next Anotation의 단축키로 지정되어 경고메시지를 찾아주는 행동을 합니다.
그래서 일단 Find Previous, Find Next를 사용하고 있는데요... 다시 Flex Builder 3로 돌아간 느낌이 드네요~ 
사라졌는지... 버그인지... 이름이 바뀌었는지... 작동안됩니다... ㅜㅜ;


Design Mode
Souce Mode 에서 Design Mode로 변경하면 화면이 바로 뜨지 않고 한번 클릭해줘야 컴포넌트들을 볼 수가 있습니다...
속도도 베타보다 느려진듯한 느낌도 들고... 이건 뭐... ㅡㅡ;


Help (Reference)
이것도 심각합니다.
정식버전에서는 아래와 같은 Adobe Community Help라는 Air로 만들어진 Help 시스템을 쓰더군요...


처음엔 별상관이 없다고 생각했지만... 이게 왠일...
클래스만 찾아주고... 변수, 메서드 등을 찾아주지 못합니다.
특히 인스턴스의 메서드를 못찾는건... 정말이지... 어이없습니다.
물론 베타에선 잘 작동했습니다.
그리고 Air로 만들어져서인지 무척이나 느리고 결정적으로 문서내 검색이 안됩니다.
그래서 환경설정에서 Open Help in browser를 지정하면 일단 브라우져에서 열리니 검색은됩니다.
참고로 다시 Adobe Community Help로 열려면 C:\Program Files\Adobe\Adobe Help 에서 Adobe Help.exe를 실행해서 환경설정을 다시 바꿔줘야하네요... 빌더에서는 어디서 설정해줘야 하는지 없네요...
암튼 Help 완전 바보됐네요...

Adobe나 개발자나 이게 왠 삽질인지... 어이가 없네요... 쓸데없는데 Air를 사용하다니...



좋아진 점
빌드 속도가 빨라진듯한 느낌이 든다는 것과...
ctrl + PageUp, ctrl + PageDn 했을 때 문서이동하다가 .mxml 파일을 만나면 Design, Source 모드 토글되는 버그(?)는 수정됐네요...


지못미 Adobe
가뜩이나 외부상황도 안좋은데... 
이렇게 베타보다 더 베타스러운 정식버전을 출시한 Adobe의 내부상황이 보이는 것 같아 씁쓸합니다.

이거 회사에 사달라고 해야 될지... 말아야 될지... 에휴~
반응형
반응형
글 옮기는 과정에서 코드부분이 날아갔네요...
글 수정하면서 결론만 남깁니다~

코딩을 할 때 가끔 이런 코딩을 합니다.
if( isValid == true){ ... }
isValid가 Boolean 값이라면 "== true" 부분은 써줄 필요는 없지만 가독성을 위해서인데요...

갑자기 if(true)와 if(true == true) 중 어떤게 더 빠를까라는 의문으로 몇가지 좀 해봤는데요~

true 또는 객체를 비교연산하지 않고 그냥 쓰는 것이 가장 빠르게 나왔습니다.
오히려 true == true 연산이 객체를 그냥 써준것 보다 느리네요... 역시 비교연산을 한번 더 하기 때문인 것 같습니다.

그리고 비교연산 중에서는 같은 형끼리의 연산이 다른 형끼리의 연산보다 월등히 빠르게 나왔네요...
obj != null는 형변환이 필요없지만 obj == true는 형변환이 필요하죠...
Boolean(obj) == true는 강제 형변환 후 같은 형끼리 비교연산을 하기 때문에 빠른 것 같은데...
특이한 것은 Boolean(obj)입니다.
당연히 Boolean값이라 true를 써준것과 같지 않을까라고 생각했는데요... 그렇지가 않네요...
정확한 이유는 모르겠으나 Boolean은 원시타입이 아니라 Boolean이라는 객체이기 때문인 것 같습니다.
Boolean(obj) == true연산시에는 obj객체를 Boolean 타입으로 형변환 후 valueOf():Boolean 메서드를 사용해 true와 비교연산하는 것 같고,
Boolean(obj)만 써준 경우는 obj객체를 Boolean 타입으로 형변환 후 toString():String 메서드를 사용하기 때문에 다시 형변환이 필요해서 아닐까 추측해봅니다. ^^;;

결론적으로 다른 형끼리 비교연산을 하지 않는 다면 아무렇게나 써도 속도에 크게 지장을 주지 않는다는 거죠...
5십만번 연산을 해야 10밀리세컨드 정도 차이가 나네요... 하지만 다른 형끼리의 비교연산은 조심해야겠네요... 1초정도 차이가나니까요...

마지막으로 빠른 순서대로 정리해봤어요~ (왼쪽으로 갈수록 빠름니다.)
true <- obj <- true==true, Boolean(obj) == true <- obj != null <- obj == true <- Boolean(obj)



반응형
반응형
정말 오랜만에 가봤는데 대문에 과감한 이미지를 사용했더라구요~ㅎㅎ

처음에는 사진 한장인줄 알았는데...
가만히 보니 모니터에 텍스트가 좀 어색하더라구요~ㅋㅋ
저 텍스트가 메뉴였어요

근데 저 텍스트는 어떻게 뉘었을까요? ㅡㅡ;
신기했는데... 우클릭하니... 플래시더군요... ㅎㅎ

반응형
반응형

데이터 바인딩이란?

어떤 객체의 데이터를 다른 객체가 참조할 때 데이터가 변경되면 변경된 정보가 곧바로 참조하는 객체들에게 전달되는 기술입니다.

간단하게 말씀드리면 컴포넌트가 업데이트 하는 순간, 참조하는 다른 컴포넌트로 변경된 정보가 전파되는 것이죠.

사용방법에는 다음 세가지가 있습니다.

1. 중괄호 문법 ( { } )

2. <mx:Binding>

3. BindingUtils

대부분의 플렉스 컴포넌트는 데이터 바인딩을 지원하기 때문에

중괄호를 이용한 바인딩은 다들 해보셨을거라 생각됩니다.


바인딩의 작동 방식

데이터 바인딩은 내부적으로 이벤트기반으로 작동합니다.

따라서 객체의 프로퍼티 값이 변하면 기본적으로 propertyChange 이벤트를 발생 시키고 이 이벤트에 따라 바인딩을 받는 객체가 값을 갱신하는 것이죠...


사용자 정의 클래스에서의 바인딩


클래스 전체를 Bindable 지정

package test
{
	import flash.events.EventDispatcher;
	
	[Bindable]
	public class A
	{
		private var _a:String;
		
		public function get a():String
		{
			return _a;
		}
		
		public function set a(a:String):void
		{
			_a = a;
		}
	}
}
클래스의 모든 멤버변수에 대해 바인딩을 설정하는 것 입니다.
코드 보시는 바와 같이 클래스 이름 위에 [Bindable] 메타 태그를 써주는 것 외에는 어떠한 설정도 필요 없습니다.
참~ 쉽죠~
신경안써도 되지만 이 상태에서는 모든 멤버변수 변화에 따라 propertyChange 이벤트가 발생합니다.
get/set 메소드가 있던 없던 상관 없습니다. 멤버속성의 변화에 따라 이벤트를 발생시키니까요...

일부 멤버변수만 Bindable 지정
package test
{
	import flash.events.EventDispatcher;
	
	public class A
	{
		[Bindable]
		private var _a:String;
		private var _b:String;
		
		public function get a():String
		{
			return _a;
		}
		
		public function set a(a:String):void
		{
			_a = a;
		}
		
		public function set b(b:String):void
		{
			_b = b;
		}
		public function get b():String
		{
			return _b;
		}
	}
}

멤버변수 _a 만 바인드 시켰습니다. a 메소드로 접근하면 바인드 되지만 b 메소드로 접근하면 바인드 이벤트가 발생하지 않습니다.

사용자 정의 바인딩 이벤트 발생
일단 사용자 정의 바인딩 이벤트가 왜 필요한지 말씀드리겠습니다. 1. 특정 변수의 변화를 추적해야하는 경우 2. 좀더 효율적인 바인딩을 해야하는 경우 1번은 말 그대로라서 설명이 필요없을듯 하고요... 2번에 대해 설명드리겠습니다. 위에서 멤버변수에 변화가 생기면 propertyChange 이벤트가 발생한다고 말씀드렸는데요... 모두 똑같은 이벤트를 발생하기 때문에 바인딩을 받는 객체 입장에선 수정이 되든 안되든 모든 변수를 업그래이드해야합니다. 이것을 방지하기 위해서 사용자 정의 바인딩 이벤트를 발생시키는 것이죠... 일단 코드먼저 보세요...
 
package test
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
	
	[Bindable]
	public class A extends EventDispatcher
	{
		// [Bindable(event="aEvent")]
		// get/set에 쓰지 않고 이곳에만 쓰면 propertyChange도 발생하기 때문에 사용의도에서 벗어나게 됩니다. 
		private var _a:String;
		private var _b:String;
		
		[Bindable(event="aEvent")]
		public function get a():String
		{
			return _a;
		}
		
		public function set a(a:String):void
		{
			_a = a;
			dispatchEvent(new Event("aEvent"));
		}
		
		public function set b(b:String):void
		{
			_b = b;
		}
		public function get b():String
		{
			return _b;
		}
	}
}

일단 지금까지의 코드와 다른 점은 EventDispatcher 클래스를 상속받고 있다는 점입니다. 
원래 Bindable로 설정하는 클래스는 모두 EventDispatcher를 상속받아야하지만 [Bindable] 메타태그가 있으면 컴파일러가 자동으로 상속을 시켜줬기 때문에 명시적으로 써주지 않아도 됐던 겁니다. 
하지만 사용자 정의 바인딩 이벤트에서는 23라인과 같이 사용자 정의 이벤트를 반드시 디스패치 해주어야 합니다. 
따라서 EventDispatcher를 꼭 상속받아야 하는 것이죠... 그리고 사용자 정의 바인딩 이벤트는 반드시 [Bindable] 메타태그를 get/set 메서드 위에 써줘야 합니다. 
멤버변수명 위에 [Bindable] 메타태그를 써주니 일반 이벤트인 propertyChange도 같이 발생하네요... 단 get과 set 둘 중 한곳에만 써주면 됩니다. 여기서 b 멤버변수는 여전히 propertyChange 이벤트를 발생하기 때문에 기본적인 바인딩이 됩니다. 

 공부하면서 정리한거라 부족하지만 바인딩을 적용시키는데 조금이나마 도움이 되길 바랍니다. ^^;;
반응형
반응형
 
# 한글은 2바이트 문자지만 문자열 길이를 구하면 1개로 계산된다.
길이를 구하면 한칸 한칸 구한다.
 
# 색상 변경하기
import flash.geom.ColorTransform;
import flash.geom.Transform;
var c:ColorTransform = new ColorTransform(); //객체 생성
c.rgb = 0x000000; //객체 속성 변경
var ccc:Transform = new Transform(cc); //cc(대상무비클립)으로 객체 생성
ccc.colorTransform = c; //값 적용
 
# 라인은 마스크 영역으로 지정해도 나타나지 않는다.
 
# 인스턴스 이름을 숫자로 지정해도 배열접근 연산자로 접근하면 오류가 발생하지 않는다.
 
# 컴포넌트 스킨 수정하기
C:\Program Files\Macromedia\Flash 8\en\Configuration\ComponentFLA\StandardComponents.fla
이 파일을 열고 라이브러리에 해당 컴포넌트의 asset들이 있습니다. 그 asset중 하나를 현재 작업하시는 파일의 라이브러리에 등록해서.. 수정하면 됨.

 
# 클래스 패키지 경로
C:\Program Files\Macromedia\Flash 8\ko\First Run\Classes\FP8
 
# 컴파일시 사용되는 클래스
 C:\Documents and Settings\ecj2000\Local Settings\Application Data\Macromedia\Flash 8\en\Configuration\Classes\mx\events\
 
 
# loadMovie() 시에 _root 지정하기
메인에 _global.root = this;
서브에 this._lockroot = true;
 
# (용어) 미들웨어
기본적으로 미들웨어는 애플리케이션들을 연결해 이들이 서로 데이터를 교환할 수 있게 해 주는 소프트웨어다. 미들웨어는 애플리케이션들을 직접 연결하는 방식에 비해 몇 가지 중요한 이점이 있다. 애플리케이션들을 직접 연결할 경우, 일반적으로 관련된 애플리케이션 모두에 코드를 추가해 각 애플리케이션이 서로 대화하도록 지시해야만 한다. 반면 미들웨어는 이 대화 과정에서 번역기라는 독립적인 제3자의 역할을 함으로써 애플리케이션 모두에 코드를 추가하는 엄청난 작업을 할 필요가 없다.
 
# 클래스 내의 this의 경로는?
클래스 자신을 가리킨다. 인스턴스를 가리키지 않는다.
 
# 무비클립과 그래픽 심볼의 차이점
무비클립은 메인타임라인과 독립적으로 플래이 하지만 그래픽은 메인 타임과 동기화된다.
재사용성의 관점에서는 둘다 똑같이 용량은 늘어나지 않는다.
그래픽과 무비클립 모두 attachMovie 가능하다.
 
# for문은 반복할 때마다 조건을 '연산'한다.
즉, 조건에 어떤 연산이 있으면 계속 수행한다.
for(var i=0; Array._lenghth; i++) { code } //매번 Array._lenghth를 계산하기 때문에 변수에 저장하여 사용하는게 효율적이다.
 
# 컴포넌트의 이벤트
EventDispatcher에서 참고
 
# movieclip.filters
movieclip.filters는 타입이 배열이다.
Flash 제작 도구 내의 필터는 디자인 타임 또는 런타임에 ActionScript 코드를 사용하여 적용할 수 있습니다. ActionScript를 사용하여 필터를 적용하려면 전체 MovieClip.filters 배열의 임시 복사본을 만들고, 임시 배열을 수정한 다음 MovieClip.filters 배열에 임시 배열의 값을 다시 지정합니다. 새 filter 객체를 MovieClip.filters 배열에 직접 추가할 수는 없습니다. 다음 코드는 myMC라는 대상 무비 클립에 아무런 영향을 주지 않습니다
추가하거나 기존의 필터에 있는 속성을 변경 할 수 있지만 반드시 임시본에 저장 후 작업해야 한다.

ActionScript를 사용하여 필터를 추가하려면 다음 단계를 수행해야 합니다(대상 무비 클립이 myMC라고 가정).

  • 선택한 filter 클래스의 생성자 함수를 사용하여 새로운 filter 객체를 만듭니다.
  • myMC.filters 배열의 값을 myFilters 등의 임시 배열에 지정합니다.
  • 새 filter 객체를 임시 배열 myFilters에 추가합니다.
  • 임시 배열의 값을 myMC.filters 배열에 지정합니다.

다음 예제에서는 myMC라는 무비 클립 인스턴스에 그림자 필터를 추가합니다.

var myDropFilter = new flash.filters.DropShadowFilter();
var myFilters:Array = myMC.filters;
myFilters.push(myDropFilter);
myMC.filters = myFilters;

다음 예제에서는 배열에 있는 첫 번째 필터의 quality 설정을 15로 변경합니다. 이 예제는 하나 이상의 filter 객체가 myMC 무비 클립과 연결되어 있는 경우에만 해당됩니다.

var myList:Array = myMC.filters;
myList[0].quality = 15;
myMC.filters = myList;
# toString()
값을 String 형으로 변화시킨다.
obj.속성.toString()
 
 
# null과 undifined 의 차이점
 
null 데이터 유형
null 데이터 유형에는 null이라는 단 하나의 값만 있습니다. 이 값은 값 없음 즉, 데이터가 없음을 의미합니다. 다양한 상황에서 속성이나 변수에 아직 값을 지정하지 않았음을 나타내기 위해 null 값을 지정할 수 있습니다. 예를 들어, 다음과 같은 경우에 null 값을 지정할 수 있습니다.
  • 변수가 있지만 아직 값을 받지 못했음을 나타낼 경우
  • 변수가 있지만 더 이상 값이 없음을 나타낼 경우
  • 함수의 반환 값으로서 함수가 어떠한 값도 반환할 수 없음을 나타내는 경우
  • 함수의 매개 변수로서 매개 변수가 생략되었음을 나타내는 경우

undefined 데이터 유형에는 undefined라는 단 하나의 값만 있으며 이 데이터 유형은 값이 지정되지 않은 변수에 코드나 사용자 상호 작용에 의해 자동으로 지정됩니다.

undefined 데이터 유형
undefined 값은 자동으로 지정됩니다. null과 달리 변수나 속성에 undefined를 지정하지 않습니다. undefined 데이터 유형을 사용하여 변수가 설정되거나 정의되었는지 확인합니다. 이 데이터 유형을 사용하면 다음 예제와 같이 응용 프로그램이 실행 중인 경우에만 실행되는 코드를 작성할 수 있습니다.
if (init == undefined) {
trace("initializing app");
init = true;
}

응용 프로그램에 프레임이 여러 개인 경우 두 번째에는 init 변수가 더 이상 undefined가 아니므로 코드가 실행되지 않습니다.

# 캐스팅이란?
컴파일러가 데이터타입 검사를 할 때 서로다른 데이터타입에서 오류가 나지 않게 잠시 데이터타입을 바꿔주는 것.
코드의 명확성을 해치기 때문에 권장되지 않는다.
 
# var obj:Object = [1,2,3,]
이것이 가능하다. Object는 최상위 객체이기 때문에 배열이 저장가능하고
값을 호출할 때도 배열과 같이 [](배열접근연산자)를 사용한다.
단, var obj1:Object = {}; 이렇게 사용할 때는 식별자와 값을 갖이 넣어줘야 한다.
var obj1:Object = {p:1, p2:2, ... };
 
# trace(TextField.getFontList());
시스템에 설치되어있는 폰트리스트
 
# isNaN();
전역함수

isNaN(expression:Object) : Boolean

매개 변수를 평가하고 값이 NaN(숫자가 아님)이면 true를 반환합니다. 이 함수는 수학적 표현식이 숫자로 제대로 평가되는지 여부를 검사하는 데 유용합니다.

 
# 플래시 디버거 방법
필요한 것
1. 디버그 가능 플래시 플레이어
2. 플래시 프로그램
 
설정
1. 플래시 플레이어 디버그 버전 설치
2. 플래시 프로그램에서 원격 디버그 허용 체크
3. 환경설정에서 디버그 기능사용에 체크
 
사용
1. 플래시 어플 실행
2. 브라우저에서 플래시 실행
3. 플래시 어플에서 확인

# setInterval의 파라미터
번째 파라미터는 콜백함수에 전달되는 파라미터이다.
반응형

'Flash Story' 카테고리의 다른 글

Flex 클래스 바인딩 시키기  (2) 2009.06.12
매일 플래시 액션스크립트 - 8  (0) 2007.03.22
매일 플래시 액션스크립트 - 7  (0) 2007.03.21

+ Recent posts