Search Results for 'as'

18 POSTS

  1. 2009.02.24 AS3.0 정리
  2. 2009.02.24 Pregmatic Flash Group
  3. 2009.02.20 Code Libraries
  4. 2009.02.11 비디오 프로그래밍
  5. 2009.02.11 BitmapData
  6. 2009.02.10 선의 속성
  7. 2009.02.10 Simple Button 만들기
  8. 2009.02.10 디스플레이 리스트

AS3.0 정리

Posted 2009.02.24 04:12


 


UI를 포함하는 클래스 구조

public class AAA extends Sprite
{
 public function AAA()
 {
  this.setLayOut();
  this.addEvent();
  this.defaultSetting();
 }
 private function setLayOut():void
 {
 }
 
 private function addEvent():void
 {
 }
 
 private function defaultSetting():void
 {
 }
}


클래스 VS 인스턴스

데이터 타입 : 배열,

 - 클래스 : 개념적으로 만들어진 [[[ 데이터 타입 ]]]  {추상적인 개념}
 
 - 인스턴스 : new 에 의해서 실제로 생성된 객체
 
   --> 컴퓨터에서는 : 메모리에 할당되어야... 실제로 존재하게 되는것..!!!
 
 
 - 클래스 변수 : static 변수, 공유의 개념
 - 인스턴스 변수 : 각자 개인이 따로 가지는 변수
 
 public class 사람 extends Sprite
 {
  public var age                     {인스턴스 변수}
  
  public static var totalPopulation  {클래스 변수}
 }
 
 this : 인스턴스 자신(O) , 클래스 X,
 
 //플래시(swf)가 다운로드 되면..
 
 *** static 함수와 static 변수가 메모리에 올라간다..!!
 
 1프레임에 작성한 액션스크립트가 수행..!!
 { DocumentClass의 생성자가 수행..!! }
 
 
 static 변수 :::: 클래스 변수, 공유의 개념으로 사용한다...
  { 자동차의 속도와 총 대수 }
 
  상수(constant): 변하지 않는 수
  변수(variable): 변하는 수
 
  public static const pi:Number = 3.141592;
 
  상수는 변하지 않는 값이기 때문에... 각 객체들이 따로 가질 필요가 없다..!!
  ==> 상수는 static !!
 
 
  ////////////////////////////////////////////////////////////////
 
  static 변수의 용도 <====> { 공유 }
 
  static 함수!!
 
  클래스이름.함수();
 
  인스턴스 함수
 
  var 객체 = new 객체클래스();
  객체.함수();
 
  //////////////////////////////////////////////////////////////
 
  AS!.0
 
  lion_mc.onEnterFrame = function(){
   this._x += 0.2*(targetX - this._x);
   this._y += 0.2*(targetY - this._y);
  }
 
  bear_mc.onEnterFrame = function(){
   this._x += 0.2*(targetX - this._x);
   this._y += 0.2*(targetY - this._y);
  }
 
   cat_mc.onEnterFrame = function(){
   this._x += 0.2*(targetX - this._x);
   this._y += 0.2*(targetY - this._y);
  }
 
  //
 
  var cart:Cart = new Cart(lion_mc);
  cart.xTo = 200;
  cart.yTo = 300;
  cart.easing = ease.inOut;
  cart.start();
 
  Move, Resize, Alpha,
 
 Tweener Class
 
 ////////////////////////////////////////////////////
 
 플래시 : UI : 움직임이 기본...!!
 
 Cart.go(lion_mc, 100, 200);
 
 **오픈 클래스**
 Caurina Tweener:
 TweenLite
 TweenMax
 
 
 
 static 변수 ::: 공유의 목적..!!
 
 
 static 함수 ::: 편하게 사용 목적..!!한줄에 표현..!!

 --> utility (유틸리티)
 
 static 함수 : Util 함수를 작성하는데 사용한다..!!
 
 StringUtil : 문자열을 다루기 편하도록 만든 클래스
 ArrayUtil : 배열을 편하게 다룰 수 있도록 만든 클래스
 
 StringUtil.digit(2) ---> "02"
 
 StringUtil.addCommaPerThousand(12345678) --->
 
 ////////////////////////////////////////////
 
 아날로그 시계 ( AnalogClockWidget )
 
  1. flash 에서 UI 만들기 SWF
    AnalogClockWidgetClip ----- hHand_mc , mHand_mc, sHand_mc,
   
  2. AnalogClockWidget 클래스 만들기
   private var clip : AnalogClockWidgetClip;
   
   생성자에서
    setLayout();    // addChild(), 위치설정
    addEvent();    // 이벤트 설정
    defaultSetting();   // 기본 설정
    
  3. AnalogClockWidgetTest :: DocumentClass
    
 


////////////////////////////////

 *기본 데이터 타입
  ( int, uint, Number, Boolean,
  
  * 기본 데이터 타입의 대입은 카피(복사)다..!!
  * 단 String의 대입은 카피다!!
 객체 {Object}를 상속받은 것들
  ( new에 의해서 생성되는 것들..!!)
  
  * 객체의 대입은 참조다...!!! ****************************
  

 var a:int = 10;
 var b:int = a;
 
 b = 100;
 
 trace(a);
 trace(b);
 
 var aaa:Array = [1, 2, 3];
 var bbb:Array = aaa;
 
 bbb[1] =300;
 
 trace(aaa.join());
 trace(bbb.join());
 
 //  변수는 실제 객체를 가리키는 포인터에 불과하다..
 
 // new Dog()에 의해서 실제 메모리에  Dog객체가 만들어지고, dog1은 Dog 객체의 주소
 var dog1:Dog = new Dog();
 var dog2:Dog = dog1;
 
 //Cat 이라는 클래스 안에는 각종 변수와 객체들이 선언되어서 100Kbyte짜리다..
 
 var cat1:Cat = new Cat();        // 실제메모리 => 100Kbyte + 4Byte
 var cat2:Cat = cat1;    // 실제메모리 => 100Kbyte + 4Byte*2
 cat1.x = 100;
 cat2.x = 200;
 
 //
 var d1:Date = new Date(2008,1,1);
 var d2:Date = d1;
 
 d2.setFullYear(2500);
 
 trace(d1.getFullYear());
 trace(d2,getFullYear());
 
 /////////////////////////////////////////////////////////////////////////
 
 도형클래스
 
 var rect:Rect = new Rect(20,20);
 this.addChild(rect);
 
 var circle:Circle = new Circle(100);
 //////////////////////////////////////////////////////////////////////
 
 var roundRect:RoundRect = new RoundRect(200,200,20,20);
 
 roundRect.fillColor = 0xFF0000;
 roundRect.ellipseWidth = 20;
 //숙제
 
 RoundRect, Rect, Circle, { Triangle, Star }
 
 BaseClass
 
 
 

////////////////////////////////////

 var rect:Rect = new Rect();
 
 rect.fillColor = 0xFF0000;
 
 var roundRect:RoundRect = new RoundRect();
 
 
 BaseShape {fillColor, fillAlpha, lineThickness, lineAlpha,...}
 

 drawMain : setter// getter 값들이 변경되어야만... 호출되는 함수
          : 외부에서 강제로 호출시킬 필요가 없다..
          ---> 외부에서 접근할 수 없도록... private
         
  Rect, RoundRect, Circle extends BaseShape
   각장 drawMain을 override 해야 한다..!!
   
   
   private : 내부에서만 호출 가능
   
   public : 내부 + 외부 모두..
   
   protected : 내부 , 상속받은... 자식 클래스 안에서만..
   
 // (  추상클래스 AbstractClass :: new를 통해 생성하지 못하는 클래스.. }
   
   
   
 ///////////////////////////////////////////////////////////////////
 
   ** 외부파일 읽어들이기...!!
  
  외부파일 :
      텍스트,      이미지
  flash5     loadVariablue()   loadMoive()
  AS1.0 :     LoadVars,    MovieClipLoader()
 
  AS3.0 :     URLLoader,    Loader
 
 ** 외부파일 연동....
 
   동기식 VS 비동기식
   
   - 동기식 : Synchronous{싱크로너스} --> {싱크로나이징} --> 보조를 맞춘다..!!
     --> 잘하는 사람이.. 못하는 사람을 배려{기다림}  :::: 기다림...!!!!
   
   - 비동기식 : Asynchronous  ::: 기다리지 않는다..!!!
   
   // 프로그램은 동기식 vs 비동기식 ??
   
   ----> 프로그램은 대부분 동기식으로 동작....!! ::: 기다려준다...!!
     ==> 컴퓨터가 빠르니까... 금방 처리하므로.. 기다려준다..!!
     ==> 플래시도 동기식으로 동작한다..!!
    
     --> 단, 외부와의 연동은... {{{ 비동기 }}}로 동작한다..!!
     외부 이미지 불러오기
     외부 텍스트 불러오기
   
   function AAA()
   {
    trace("AAA");
    BBB();
    trace("AAA");
   }
   
   function BBB()
   {
    trace("BBB")
   }
   
   AAA();
   
   ////////////////////////////////////////////////////////////////////
   
   // AS1.0
   
   _mc1 = new MouveClipLoader();
   
   this.onLoadInit = function(){
   //도착하면 할 일..
   };
   
   _mc1.addListener(this);
   _mc1.loadClip("aaa.jpg",screen);
   
   ///////////////////////////////////
   _lv = new LoadVars();
   _lv.onLoad = function(){
   
   };
   _lv.sendAndLoad("aaa.php",_lv, "post");
   
   //// 비동기식 코딩.
   
   데이터 관리 객체생성
   데이터가 도착하면 할 일 정하기
   데이터 호출
   
   
   
   var xmlLoader:XMLLoader = new XMLLoadder();
   xmlLoader.addEventListener(XMLloaderEvent.COMPLETE, onComplete);
   xmlLoader.load("aaa.xml");
   
   function onComplete(e:XMLLoaderEvent):void
   {
   }
   
   //////////////////////////////////////////////////
   
   var imgLoader:ImgLoader = new ImgLoader();
   
   imgLoader.addEventListener(ImgLoaderEvent.COMPLETE, onComplete);
   
   imgLoader.load("aaa.jpg");
   
   /////////////////////////////////////////////////
   
   AS3.0에서 모든 요청은 URLRequest 로 한다..!!
   
   Request 는 중요하지만, Response 는 { 받은 데이터 } 만 의미있으므로, URLRequest 객체만 있다.
   
   URLRequest : 주문시에 주문할 주소, 여러가지 데이터 { 집주소, 금액, 개수..} 타입,GET/POST,...
   
   Client  --------------( request:요청 )------------> Server
     <-------------( response:응답 )------------
     
     
     
  ////////////////////////////////////////////////////////////////////
 
  오류처리 :
 
    동기식 오류처리
      try{
     
      }catch(e:Event){
     
      }
    
    비동기식 오류처리
    
     urlLoader.addEventListener(IOErrorEvent.IO_ERROR, onError);
     
  /////////////////////////////////////////////////////////////////////
 
  공부방식 : 내장객체의 이해..!!
 
  내장객체 설명 --> 사용상의 문제점.. --> 해결책...
 
  URLLoader
  URLRequest
 
  ////////////////////////////////////////////////////////////////////
 
  //1. 객체 생성
  var xmlLoader:XMLLoader = new XMlLoader();
 
  //2. 이벤트 등록
  xmlLoader.addEventListener();
 
  //3. 호출
  xmlLoader.load("./aaa/data.xml");
 
  ///////////////////////////////////////////////////////////////////
 
  플래시가 동기식으로 동작.. { 내부에서는..}
 
  // 동기식이지만, 최대로 .. 15초까지 기다려준다..!!
  // 15초 초과 Error..!!
 
   보안
  // 삼성생명 : 3DES, DES==> AES {SEED}
 
  // 일반적으로는 DES, AES 정말 빠르다..!! 플래시로 포팅된 DES가 좀 느림
  //DES 알고리즘 안에. byte 단위로 접근 : 한자리수면 앞에 "0"
    3 --> 03 :::
    
   고객 데이터가 .. 1M ---> 실제적으론 3M
   for(300만){
    if(){
    }
   }
 
  for(var i:int=0;i<100000000; i++){
   var sp:Sprite = new Sprite();
   addChild(sp);
  }
 
  trace("하하하");
 
 
 
 /////////////////////////////////////////////////////////////////////////
 
  var timer:Timer = new Timer(50, 200);
  timer.addEventListener( TimerEvent.TIMER , onTime)l
  timer.start();
 
  function onTime(e:TimerEvent):void
  {
   //1000건이나 500건 단위로 잘라서 for문
   for(var i:int=0; i<1000; i++){
    //액션
   }
  }
 
  ///////////////////////////////////////////////////////////////////////

 

사용자 이벤트 정의 : Event를 상속 받아서.. 원하는 정보를 담을 수 있는
       사용자 정의 이벤트를 만들어서 전달하자..!!
       
이벤트 :: 정보 ..!! : "어떤 사건이 발생했다"라는 Notice + "사건의 상세정보"
 
  완전한정보 
 불이야 : type
 말하는 이 : target
 듣는이 : currentTarget
 부가정보 : { 어디서, 언제 }
 
 
 ::  XMLLoader : 외부와의 통신 ---> 비동기.. 호출..!! <-- 최소 코딩 3줄
 
 클래스를 제작할 때..!!
  {URLLoader, URLRequest}
 
  1. 내장클래스에 대해서.. 완벽히 숙지..!!{정말 클래스를 따로 만들 필요가 있을까??}
   --> 내장 클래스 어떻게 공부? 1. 도움말, 2.CooK book
  2. 내장클래스의 문제점 파악!!
  3. 문제점을 해결한,{ 쓰기 쉬운, 분석하기 쉬운 } 클래스 만들기.. --> 팔수 있는 클래스!!
  
 
 var xmlLoader:XMLLoader = new XMLLoader();
 xmlLoader.addEventListener(XMLLoaderEvent.COMPLETE , onComplete);
 xmlLoader.load("aaa.xml");
 
 function onComplete(e:XMLLoaderEvent):void
 {
  e.data
 }
 
 주인        집사        일꾼   <--------{ has a 관계의 코딩..!!} : 위임!!
 
 주인.addEventListener( 집사Event.COMPLETE, );
 
 
 //////////////////////////////////////////////////////////////////////////
 
 사용자 정의 이벤트...
 
 public class CustomEvent extends Event
 {
  //이벤트 타입 : const는 공유의 개념이므로, static 으로..!!
  public static const DATA_COMPLETE:String = "dataComplete";
  
  //전달할 변수
  public var id:String;
  public var passwd:String;
  
  public function CoustomEvent(id:String, passwodrd:String, type:String, ...)
  {
   super( type, bubbles, cancelable);
   
   this.id = id;
   this.password = password
  }
 }
 
 //////////// Event meta-data tag  :: "내가 사용하는 이벤트는 ***이다"를 정의


 URLLoader  --> 불편하다.. -->XMLLoader
 
 //DisplayObject 객체를 호출하는 클래스
 Loader {이미지 호출} ---> 불편함.. --> ImageLoader{ImageLoaderEvent}
 
  {contentLoaderInfo}
 Loader   -   content
 
 특징.
  1. 이벤트를 Loader에 설정하지 않고, contentLoaderInfo에 설정한다..!!{예외} <-수정할 요건
  2. 데이터가 도착하면, Event.COMPLETE 이벤트 발생 <-- 읽어들인 데이터 접근이 어렵다.
  3. content를 다른 객체에 붙이지 않는다..!! 
  4. load() 함수에서 매개변수로 URLRequest 클래스 사용..!!{불편}->문자열로 쓰면 편하지 않을까
  
  =======> ImageLoader !!
  
  ImageLoader 클래스를 만들어보자..!!
   - 누구를 상속받을까? Loader, Sprite
    --> Sprite 상속을 선택했다..!! <-- load 함수를 오버라이드해서 사용하지 않기 위해..!!
  
  A가 .. B 클래스를 필요로 한다..!!
  
   1. class A extends b  <---- A is a B
   
   2. class A {          <------------- 추천 : 보다 유연함..!!
     private var b: B;
    }
  
  
 AS1.0 모델...
 
 screen.onRelease = function(){
  //액션
 };
 screen.age = 20;
 
 screen.loadMoive("aaa.jpg");
 
 >>>>>>
 
 screenCase.screen
 
 screenCase.onRelease = function(){
  //액션
 };
 screenCase.screen.loadMovie("aaa.jpg");
 
 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
 
 A.com / aaa.swf 파일에서 .. b.com에 있는 bbb.jpg 파일을 읽어오려한다..
 
 crossDomain.xml ::: 읽기 허용,  옵션.. 변경 허용{사용허용}
 
 DisplayObjectContatiner를 상속받은 객체 : Sprite, Loader, Stage
 
 Loader
     contentLoaderInfo ::
   - content
 
 


1. developer.yahoo.com/flash 에 접속

2. WebAPI download

wether.yahoo.com


 클래스, 패키지 :  - 공부가 필요없는 클래스 !
        - 상식으로 사용할 수 있는 클래스
       
 WeatherService : ~~ Service < 서버와 연동 > :: 비동기 통신 !!
 
 * Server 들이 하는 일 : Service
  WebServer  :
  FTPServer  :
  MainServer :
  
  
 // 클래스에 필요한 문자열 변수들도.. 변수명과 동일한 클래스 명으로 .. 만들어서 .. 처리

TextField
 -> TextFiledAutoSize
 -> TextFieldType 

var textField:TextField = new TextField()
textField.autoSize = TextFieldAutoSize.RIGHT;
textField.type = TextFieldType.INPUT;

var tf:TextFormat = new TextFormat();
tf.align = TextFormatAlign.CENTER;

///////////////////////////////////////////////////////////////////////

 개발에서 가장(?) 중요한 요소 : 데이터

  데이터 모델링..!! <-----> 개발, 유지보수{운영}에 있어 가장 중요한.. 요소
 
  가장 작은 모듈부터 출발해서.. 점점 크게 확장시켜서.. 만든다..
 
  아주 사소한 변수를 저장하더라도{관련있는 데이터가 두개 이상이면)..
   데이터 타입{클래스}을 따로 만든다..
 
  //AS1.0에서는 관련있는 모든 변수는 Object 형태로 저장..!! -->> 코드힌트 불가
   -> 단기 암기에 의한 코딩 -> 결국에는.. 변수명을 계속 확인하느라 개발 시간이 증가.!!
   
  ///////////////////////////////////////////////////////////////////////////
 
 


this.stop();

//가능하면, 플래시에서 코딩하지 말고..
//꼭 코딩을 해야할 경우에도... stop, play, dispatchEvent 정도...
parent.dispatchEvent(new Event("finish"));

//들을객체.dispatchEvent( 이벤트 );

**** DisplayList VS OffList

 List : 배열 {아이템이 많아서 .. 잘 정리해둔 것들}
 
 DisplayList : 눈에 보이는 객체들을 관리하는 배열...
 
 OffList : 눈에 보이지 않는 객체들...
 
 var dog:Dog = new Dog(); // OffList
 
 this.addChild(dog);   // DisplayList
 
 
 this.removeChild(dog); // Dog는 OffList에 들어간다..!!
 
 DisplayList <------- addChild된 상태...(X)
      자신, 자신의 parent, 자신의 parent의 parent...
      stage까지 모두 addChild된 상태 (O)
 
*** removeChild는 메모리에서 삭제한게 아니라.. 단지 offList로 보낸 것 뿐이다..!!
*** var dog = new Dog();    // new <---- 메모리를 할당 하시오....!! { CPU를 좀 사용 }
 
 var dog:Dog = new Dog();
 var house:House = new House();
 
 house.addChild(dog);
 
 
 ///////////////////////////////////////////////////////////////////
 
 //들을객체에게만.. 이벤트를 전달하는 방식..
 들을객체.dispatchEvent(new Event("타입"));
 
 
 //bubble 가 true인 경우에는 {들을객체}와 {들을객체를 포함하고 있는 부모들}모두에게 이벤트 전달..
 들을객체.dispatchEvent(new Event("타입",true));
 
 //Event는 bubble이 기본적으로 false다...!!
 
 
 *** 플래시로 SWC 파일을 만들경우, stop(), play() 같은 간단한 액션만 적고, 프레임에 관련된 긴 액션이
 
 필요한 경우 dispathEvent()를 이용해서.. 이벤트를 전달만 시키고, 핵심코딩은 Flex에서 작업해 주자..!!
 
 dispatchEvent의 경우 가능하면, bubble값을 true로 세팅해서... 이벤트를 위로 전달가능하도록 한다..!!
 
 >> addEventListener()의 경우, 매개변수가 5개이다..!! 이중에서 세번째 매개변수{useCapture}는
 
 기본적으로 false인데, 이 값을 true로 세팅하면 {captrue} 구간에서 이벤트를 들을 수 있다..
 
 {기본은 target과 bubble 구간에서 이벤트를 듣는다..}
 
 *** MouseEvent는 기본적으로 bubble이 true로 설정되어 있다..!!
 
 //////////////////////////////////////////////////////////////////////////////////
 
 Run Time VS Compile Time
 
 as ----- { compile } -----> swf
 
 swf 파일을 만드는 과정에서 발생하는 사건.. 오류  CompileTime error, CompileTime Event
 
 
 swf 파일이 실행하는 도중에 발생하는 사건.. 오류 RunTime error, RunTime Event
 
 - 필요할때 이미지를 불러오는 것 : ImageLoader, Loader <--- RunTime 이미지 호출...
 
 - 처음시작할때 부터 이미지를 심어놓는 {Embed} 하는 것 : Compile시 이미지 삽입...
 
 
 
 

Bitmap방식 VS 벡터 방식

*** Bitmap 방식이 랜더링 속도가 훨씬 빠르다.

 - Bitmap방식은 픽셀의 색상정보를 이차원 배열에 저장하고 있어서, 그냥 읽어들인다.
 
 - 벡터방식은 공식에 의해서 색상정보를 {계산}한다..
 
*** 대신 파일 사이즈 측면에서는 벡터 방식이 더 뛰어나다..!!

>>Flash는 7.0부터 비트맵을 지원했다..!!

 BitmapData ::: 픽셀의 색상 정보를 저장하고 있는 배열객체 {이미지}
 
 Bitmap ::: BitmapData에 들어있는 픽셀정보를 읽어서 화면에 뿌려주는 객체 {뷰어}


 필터를 적용하려면.... BitmapData에 적용.
 그림을 변경하려면.. BitmapData..
 
 
 **** BitmapData.draw() 메서드를 이용하면, 원하는 객체를 비트맵으로 그릴 수 있다.!!

//flash.geom.* <--- geom == geometry { 기하학 }, Point, Rectangle, Matrix, ColorTransform

//점 : new Poin(20, 30);
//영역 : new Rectangel(20, 30, 100, 200);
//좌표 및 변환 : Matrix();
//색상 : ColorTransform

//필터중에서.. 가장 강력한 필터 ::::: ColorMatrixFilter


_mc.addEventListener( MouseEvent.MOUSE_DOWN, onDown);

function onDown(e:MouseEvent):void
{
 var sp:Sprite = e.currentTarGet as Sprite;
 
 var bmpData:BitmapData =  new BitampData(sp.width, sp.height ,false, 0);
 var bmp:Bitmap = new Bitmap( bmpData);
 bmpData.draw(sp);
 
 var container:Sprite = new Sprite();
 stage.container.addChild(bmp);
 addChild(container);
 container.startDrag(false);
 container.addEventListener(MouseEvent.MOUSE_UP, onUp);
}

function onUp(e:MouseEvent):void
{
 if( target.hitTestPoint(mouseX, mouseY)==true){
 //장바구니에 담기
 
 }else{
 //버리기
 }
}

 

 

//////////////////////////////////////////////////////////////////////////////////

 runtime :: 만들어진 swf 파일이 flashplayer에서 실행되는 기간
  *** runtime error :: try catch, addEventListener(ErrorEvent. );
 
 compile-time :: swf 파일을 만들어가는 기간
  *** complietime error :: swf가 만들어지지 않는 문제.. 코딩으로 무조건 해결..
  
 
 AS1.0
  
  lion_mc.id = 20;
  lion_mc.address="서울시 우리집";
  
 class를 선언할때.. 변수를 정하는게 아니라.. 클래스 바깥에서도..
   임의로 변수를 정할수 있는 클래스 ::: dynamic Class
   
   
 var sp:Sprite = new Sprite();
 sp.age = 50; (x)
 클래스 안에서 public으로 선언한 변수만 사용가능..!!
 
 AS1.0의 모든 클래스는 dynamic class이다..!!
 
  lion_mc.now = new Date();
  lion_mc.age = 50;
  
  편하긴 하다.. 하지만, 메모리 할당에 문제가 발생한다..!!
  
  dynamic class 를 이용하면, 메모리를 좀 더 많이 확보해둬야 한다..!! -> 속도 감소..!!
  
  --> AS3.0은 서로 약속한것만 쓰자..!! 다른값이 필요하면.. 상속받아라..!!
  
  하지만 Object, MovieClip, XML, Array 는 dynamic class 이다..!!
  
  **** AS3.0에서는 .. 가능하면 dynamic class 는 쓰지 말자..!!
  
  
  // 부드러운 움직임..!!
  
  lion_mc.onEnterFrame = function(){
   this._x += 0.2*(xTarget - this._x);
  };
  
  bird_mc.onEnterFrame = function(){
   this._x += 0.2*(xTarget - this._x);
  };
  
  menu_mc :: 본연의 목적 :  클릭하면 링크, 모션...
     효과 : 모션액션, 부드러운 움직임을 가져야한다..
     
  // 플랙스에서는..
  
  var car:Car = new Car(bird_mc);
  //car.target = lion_mc;
  
  car.xTo =200;
  car.yT0 = 300;
  car.duration =3000;
  car.easingFunc = Back.easeIn;
  car.startAfter(100);
  
  
  ////////////////////////////////////////////////////////////////////////
  
  TweenLite.to(lion_mc,{x:200, y:300, duration:500});
  
  static 함수 :: util 관련 함수.. 객체를 생성할 필요없이.. 한줄에 .. 호출 가능..!!
  
 //aaa_mc를 속도계수 0.2, 목적지 (200,400)이 되도록 만들어보자..!!
 *** 목적..!!
 DisplayObjectUtil.smoothMove(aaa_mc, 0.2, 200, 400);
 
 Dictionary :: 배열과 비슷하다...
 
 Array : 방번호를 정해서.. 그 번호에 변수를 저장하는 클래스
 --> 내가 원하는 데이터가 필요하면, 방 번호를 기억하고 있어야 한다..!!
 
******* Dictionary :: 자기 자신을 키로해서.. 데이터를 저장하고, 읽어온다.. ******

  Dictionary :: 마치 dynamic class 처럼.. 인스턴스에 변수를 할당하는 것과 동일한 효과를
  가질수 있다..{ AS 1.0의 목마름을 해결.. }
 
 
 var dic:Dictionary = new Dictionary();
 var sp:Sprite = new Sprite();
 var cat:Sprite = new Sprite();
 
 dic[sp] = 50;
 dic[cat] = 4000;
 
 
 
///////////////////////////////////////////////////////////////////////////////////


 ** Dictionary :::
  --- dynamic class가 아닌 클래스에 동적으로 변수를 추가하고 싶은 경우..
   
   >> 해당 클래스를 상속받아서, 원하는 변수 하나 추가한다..!!
   
   >> Dictionary를 이용해서 .. 인스턴스명을 키로해서.. 데이터를 저장한다..!!
 
  
///////////////////////////////////////////////////////////////////////////////////

 프로그래밍 공부순서
 
 [[ 변수 -> 이벤트 -> 제어문( if, for) -> 간단한 알고리즘 공부 -> 함수 -> {배열, 문자열}
 
  -> 만들어놓은 클래스 사용해보기 -> class 만들기 -> { 은닉 public , private } - >
  
  -> 재사용{ 상속 } -> static, override ... -> interface -> DesignPattern ]]
  

///////////////////////////////////////////////////////////////////////////////////
 
 Interface  :: 집합이다..!!
 
 
 var arrGroup : Array = [medic1, medic2, marine1, tank1];
 
 for(var i:int=0;i<arrGroup.length;i++)
 {
  if(arrGroup[i] is Medic){
   // do nothing
  }else if(arrGroup[i] is Marine){
   arrGroup[i].attack();
  }else if(arrGroup[i] is Tank){
   arrGroup[i].attack();
  }
 }
 
 
 interface IAttackable
 {
  function attack():void;
 }
 
 interface IMovable
 {
  function move():void;
 }
  
  
  
 가장 유연한 구조는 Interface에 의한.. 개발..!! -> Design pattern
 
 올플래시 홈페이지.. Interface
  
  
  


 - Back&Forth 메뉴 구조.. 쉽게 만드는 방법
 
 
 
 -MoiveClipUtil.setMotion(MovieClip); // 업그레이드
 
 
 var group:MenuCroup = new MenuGroup();
 
 group.addMenu(m0);
 group.addMenu(m1);
 group.addMenu(m2);
 group.addMenu(m3);
 group.addMenu(m4);
 
 - 각메뉴들 m0 ~ m4 까지는 Back & Forth 메뉴형태를 가지고..(over, out반응)
 - m#을 클릭하면, 클릭된 메뉴는 활성화 상태로 가고, 나머지는 비활성 상태로 이동..
 
 m#의 구조는 1~20 프레임까지는 B&F모션, 30프레임은 선택된 상태..
 
 3 - state menu :: Out --{motion}-- Over - Selected
 
 
 ////////////////////////////////////////////////////////////////////////
 
 - streamming :: 스트리밍 ==> 흐름 {액체, 기체} -->일부분도 전체의 성질을 {대표성}을 가진다..
 
  -->> 대표성을 가지기 위한.. 최소 단위가 존재..!! ******
  
 **** 플래시(swf)는 스트리밍? Yes~
  
  --> 플래시는 {{ _root의 프레임단위 }} 스트리밍이다.!!
  
  --> 최소단위에 대한 설명 X ::: 플래시를 공부하면서 1프레임에 대한 압박????
  
  progressive streamming, non-progressive streamming <--
  
  swf 파일은 progressive streamming.. 이다!!
  
  flv : { flash video} ::: 스트리밍 비디오 ::: non-progressive streamming
             flash6.0 {flashMX 2002년 3월}
   일반 웹서버에서는.. progressive
   미디어 서버에서는.. nonprogressvie { FMS Flash Media Server }

 ////////////////////////////////////////////////////////////////////////
 
 
 
 실시간..!!
1. ordering :: 순서    <--------------길 만들기                          NetConnection()
2. jiter    :: 파일간 간격 <------ 일정간격으로..{ 수문관리자} 흐름관리  NetStream()
                                                                Video()
                                                                    
                                                                    
  

  - 2 Depth Navigation
  
  Tree Navigation
  
  var tree:Tree = new Tree();
  addChild(tree);
  
  tree.dataProvider = xml;
  
  [ main ]
   [ sub  ]
   [ sub  ]
  [ main ]
   [ sub  ]
   [ sub  ]
  [ main ]
   [ sub  ]
   [ sub  ]
   
   
 Main Class
  - 누르면, 열고 닫기를 반복
  
  - close(), open() <== 서브메뉴들을 알고 있어야 한다..!!
  
  - 상태변수: isOpen <--- 상태가 변경되면, 메뉴모양도 변경이 되어야 하므로,
       setter/ getter
       
  function isOpen(value:Boolean):void
  {
   if(value==ture){
    open();
   }else{
    close();
   }
  }
  
  
  
  - click(isOpen:Boolean)
  
  {
   if(isOpen == true){
    open();
   }else{
    close();
   }
  }
  
  
 --> 3Depth, 4Depth..
 
 for(i){
 //메인메뉴 생성
  for(j:i번째 메인 뮤네의 서브메뉴들){
   //i번째 메인의 j번째 서브 메뉴들 만들기
   for(k:i번째 메인, j번째 서브들){
    //k번째 서브
   }
  }
 }
 
 
 ----------->>>>
 
 function makeMenu(xmlList:XMLList):void
 {
  for(var i:int=0;xmlList.length();i++)
  {
   xmlList[i]번째 메뉴 생성하기
   if(xmlList.sub.length !=0){
    makeMenu(xmlList[i].sub);
   }
  }
 }
 
 jpg, bmp
 
 avi, mpeg
 
 동영상 : 이미지의 연속 24fps : 1초에 24장 이미지.. --> 파일사이즈 증가
 
 MPEG
 
 KeyFrame, Frame
  

 

DisplayObject 계충 구조.

 Object :: 모든 클래스는 Object를 상속받는다.. 원시세포.. dynamic class
 
 EventDispatcher :: 듣고 말하기가 가능한 객체 :: addEventListener(), dispatchEvent()
 
 DisplayObject :: 눈에 보이는 객체 :
   x, y, width, height, visible, rotation, alpha
   parent:DisplayObjectContainer
   filters = ["그림자", "그로우","베벨"]
   
   Bitmap
   
 InteractiveObject :: 사용자에 반응하는 객체 :MouseEvent, KeyboardEvent, FocusEvent..
      TestField, SimpleButton
      
 DisplayObjectContainer :: 다른 DisplayObject를 담을수 있는 객체
      addChild, removeChild, addChildAt, removeAll
      getChildAt, getChildIndex
      contains
      setChildIndex():: (as2.0의 swapDepths)
      numChilren
      ::: Sprite, Loader, Stage
      
 Sprite
  

/////////////////////////////////////////////////////////////////////////
 parent :: container 관계에서 부모..
 super :: 상속 관계에서 부모


/////////////////////////////////////////////////////////////////////////

3 -
 d: 다중상속은 안된다..!!
 e: static 변수는 클래스를 통해서만 접근이 가능하다..!! { 공유의 개념}
   인스턴스 <--- 개별적인 개념..
   
 f: 0. static 변수는.. 쉽게 접근하기 위한 용도로도 많이 사용된다..!!
   static 함수는 어디서든 쉽게 접근할 수 있도록 만든 함수
   NumberUtil.getRandom(4,10);
   
 g: X 외부사용 public, 자식클래스:protected, 자신만 private
 
 h: static 맴버함수 안에서 this 키워드를 사용할 수 없다..!!
 
  this ::: 인스턴스 자신  <--- 개별적인 개념이 되어서.. 공유함수의 static 으로는 사용할수없다
  
  swf 파일이 다운로드 되면..
  
  1. static 변수 및 static 함수가.. 메모리에 올라가고...
  
  2. 1전 프레임, Document Class의 생성자에 있는 액션이 수행..
  
 i. InteractiveObject를 상속받아야.. 마우스에 반응 가능..
 
 j. getter만 선언하면 == 읽기 전용함수
 
  _mc.currentFrame = 20;(x);
  
 k. addChild()는 .. DisplayObjectContainer에 선언되어있다..
 
 l. dynamic class :: run-time에서 변수를 추가할 수 있는 클래스
 
 m. EventFlow는 DisplayObject를 상속받은 객체들에서만 존재한다.
  ( 흐름을 위해선 계층구조가 필요 )
  
 AAA --- BBB --- CCC
 
 클릭이벤트가 발생하면.. { stage - AAA->BBB->}{ccc}{-->bbb --->aaa --> stage}
 
 capture -> target -> bubble
 
 /////////////////////////////////////////////////////////////////////////
 
 target 과 currentTarget의 차이
 
 target :: 말하는 놈..
 
 currentTarget :: 듣는 놈..
 
 구조:: stage - root - ccc -bbb - aaa
 
 ccc.addEventListener("하하하", onHahaha);
 aaa.dispatchEvent(new Event("하하하", true));
 function onHahaha(e:Event):void
 {
  trace(e.currentTarget); /// ccc
  trace(e.target);  /// aaa
 }

 /////////////////////////////////////////////////////////////////////////
 
 Loader를 이용해서.. aaa.jpg 파일 호출
 
 var loader:Loader = new Loader();
 loader.contenLoaderInfo.addEventListener(Event.COMPLETE, onComplete);
 loader.load(new URLRequest("aaa.jpg"));
 
 function onComplete(e:Event):void
 {
  loader.width =100;
  loader.height = 100;
 }
 
 
  /////////////////////////////////////////////////////////////////////////
 
  addEventListener 에서 useCapture 구간이 true면 .. capture구간에서  이벤트를 듣겠다..!!
 
   /////////////////////////////////////////////////////////////////////////
  
   자바스크립트 호출....
  
   * FSCommand *** {비동기식}
  
   navigateToURL <---- getURL :9.0.0.119 버전 {비동기식}
    {작년 12월 플래시 플레이어 패치 이후에 Iframe의 자바스크릅트 호출 불가능 X
  
   ExternalInterface.call(); **** {동기식}
     ::: 공인인증서나 신용카드 결제시에는.. 사용하지 X (15초까지만 기다려준다)
     
     function showCard(){
     
      setInterval(100, 사용자 입력 받기는 함수);     
     
     }
     
     function 사용자 입력 받기는 함수(){
     
     }
  
 /////////////////////////////////////////////////////////////////////////
 
 as1.0, as2.0으로 개발된 플래시는 AVM1에서 동작하고, as3.0은 AVM2에서 동작하는데,
 AVM1.0과 AVM2.0은 철저히 구분이 된다..{남/북} 유일한 방법은 LocalConnection...!!

  FlashPlayer
 [ AVM1 | AVM2 ] {action-script virtual Machine}
 
 windows,linux,mac
 
 ------------------
 
 
 
  flash
 
 [ 가 상 머 신 ] <--- virtual machine :: 멀티OS가 지원가능하게 된다..
 
 windows, linux, mac
 
 
  /////////////////////////////////////////////////////////////////////////
 
  try{
   root.loaderInfo.parameters["main"]
  }catch(e:Error){
 
  }
 
  /////////////////////////////////////////////////////////////////////////
 
  xml.book.length()
 
  xml.book[1]@id , xml.book(author =="친구).@id
 
  xml.book[1].title
 
  /////////////////////////////////////////////////////////////////////////
 
 
  DisplayList { 눈에 보이는 } VS OffList { 눈에 보이지 않는 }
 
  메모리 사용량을 줄이기 위한 최고의 방법은 :: 재사용..!!
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
  

 

 

 
 
 
 
 
 
 
 
 
 
 
 

 

 

 

 

 

 

 


 
 
 
 
 
 


 

Pregmatic Flash Group

Posted 2009.02.24 04:01

PFG!! 뿌꾸의 이미지를 활용~ ㅎㅎ

우야꼬형의 리더쉽을 바탕으로 열심히 노력해서 멋진 人 됩시다^^

Code Libraries

Posted 2009.02.20 06:16

3D Engines

Papervision3D
http://blog.papervision3d.org/

Away 3D

http://www.away3d.com/

Sandy 3D

http://www.flashsandy.org/

Alternativa Platform

http://blog.alternativaplatform.com/en/

FIVe3D

http://five3d.mathieu-badimon.com/

WireEngine3D (we3d) - A lightweight and fast 3D Engine for Flash 8/9.

http://osflash.org/we3d/

Sharikura

http://temp.roxik.com/datas/physics/


3D Game Engines

PaperWorld 3D
http://paperworld3d.com/


3D Animation Framework

Cast3D
http://www.cast3d.org/


3D Physics Engines

WOW-Engine
http://seraf.mediabox.fr/wow-engine/


Animation Tweening Kits

Tweener - A class for creating tweens in actionscript 2 and 3 - because there’s infinity between 0 and 1.
http://code.google.com/p/tweener/

TweenLite
http://blog.greensock.com/tweenliteas3/

TweenMax
http://blog.greensock.com/tweenmaxas3/

Tweensy
http://www.lostinactionscript.com/blog/index.php/2008/08/31/as3-tween-engine-tweensy-preview/

GoASAP (ActionScript Animation Platform)
http://www.goasap.org/

AS3 Animation System 2.0
http://www.boostworthy.com/blog/?p=170

Animation Package
http://www.alex-uhlmann.de/flash/animationpackage/

KitchenSync - KitchenSync is an ActionScript 3.0 library for sequencing animations and other time-based actions.
http://code.google.com/p/kitchensynclib/

Gyro - A tween and animation library for ActionScript 3
http://code.google.com/p/gyro-actionscript-animation/

gTween
http://www.gskinner.com/blog/archives/2008/08/gtween_a_new_tw.html

HydroTween + HydroSequence (based on GoASAP)
http://blog.hydrotik.com/2008/07/19/hydrotween-hydrosequence-rev32/

AS3 Easing
http://www.uza.lt/codex/as3-easing/

Twease
http://code.google.com/p/twease/


2D Physics Engines

APE (Actionscript Physics Engine)
http://www.cove.org/ape/index.htm

Box2DFlashAS3
http://box2dflash.sourceforge.net/

FOAM - 2D Rigid Body Physics Engine
http://code.google.com/p/foam-as3/

glaze - 2D Rigid Body Dynamics & Game Engine for Actionsctipt 3
http://code.google.com/p/glaze/

motor2
http://lab.polygonal.de/motor_physics/

Fisix Engine
http://www.fisixengine.com/default.asp

PopShapes
http://lab.andre-michelle.com/physics-engine/


Security

AS3Crypto
http://crypto.hurlant.com/


Audio Libraries

Popforge - ActionScript 3 code sandbox for various packages
http://code.google.com/p/popforge/


Particle Systems

FLiNT
http://flintparticles.org/

Partigen (Not free)
http://desuade.com/products/partigen/

Pulse Particle System - A general purpose AS3 particle system.
http://www.rogue-development.com/pulseParticles.html


Data Visualization

Flare - Create interactive data visualizations for the web
http://flare.prefuse.org/


Loading Kits

BulkLoader - A library for managing multiple loadings with Actionscript 3 (AS3).
http://code.google.com/p/bulk-loader/

Masapi
http://code.google.com/p/masapi/

QueueLoaderAS3
http://code.google.com/p/queueloader-as3/


OOP Frameworks

Cairngorm
http://opensource.adobe.com/wiki/display/cairngorm/Cairngorm

PureMVC
http://puremvc.org/

Mate
http://mate.asfusion.com/

Gaia
http://www.gaiaflashframework.com/

Slide
http://code.google.com/p/flex-slide/

Guasax
http://www.guasax.com/

VEGAS
http://code.google.com/p/vegas/

Parsley
http://www.spicefactory.org/parsley/

LowRa - AS3 version of pixlib
http://code.google.com/p/lowra/


Other APIs and libraries

facebook-actionscript-api - Actionscript API for the Facebook platform
http://code.google.com/p/facebook-actionscript-api/

as3facebooklib - ActionScript 3.0 API for Facebook
http://code.google.com/p/as3facebooklib/

Yahoo Maps API
http://developer.yahoo.com/flash/maps/

corelib - ActionScript 3.0 library for several basic utilities (JPEG Encoding, MD5 Hashing, JSON Serialization).
http://code.google.com/p/as3corelib/

as3flexunitlib - ActionScript 3.0 framework for unit testing.
http://code.google.com/p/as3flexunitlib/

as3flickrlib - ActionScript 3.0 API for Flickr
http://code.google.com/p/as3flickrlib/

as3mapprlib - ActionScript 3.0 API for Mappr
 http://code.google.com/p/as3mapprlib/

as3syndicationlib - ActionScript 3.0 library for handling syndication feeds.
http://code.google.com/p/as3syndicationlib/

as3odeolib - ActionScript 3.0 API for Odeo
http://code.google.com/p/as3odeolib/

as3youtubelib - ActionScript 3.0 API for YouTube
http://code.google.com/p/as3youtubelib/

as3ebaylib - ActionScript 3.0 API for eBay
http://code.google.com/p/as3ebaylib/

as3awss3lib - ActionScript 3.0 library for interacting with Amazon S3
http://code.google.com/p/as3awss3lib/

as3soundeditorlib - Actionscript 3.0 library for sound playback, spectrum display, and cue point display
http://code.google.com/p/as3soundeditorlib/

as3ds - AS3 Data Structures For Game Developers
http://code.google.com/p/as3ds/

as3notificationlib - A notification framework written in AS3 for the Adobe Integrated Runtime (AIR)
http://code.google.com/p/as3notificationlib/

as3preferenceslib - An AIR library for storing preferences
http://code.google.com/p/as3preferenceslib/

as3nativealertlib - An AIR alert that appears in a native window
http://code.google.com/p/as3nativealertlib/

ASCOLLADA - actionscript library for parsing Collada files
http://code.google.com/p/ascollada/

FZip - An Actionscript 3 class library to load, modify and create standard ZIP archives.
http://codeazur.com.br/lab/fzip/

lastfm-as3 - Actionscript 3.0 API to access the Last.fm web services
http://code.google.com/p/lastfm-as3/

MapQuest
http://company.mapquest.com/mqbs/4a.html

Modest Maps - A display and interaction library for tile-based maps in Flash
http://www.modestmaps.com/

as3cards - An ActionScript 3.0 card engine and example games
http://code.google.com/p/as3cards/

flexircclient - ActionScript 3 based IRC library
http://code.google.com/p/flexircclient/

AsWing - A GUI framework and library that allows programmers to make their flash application(or RIA) UI easily.
http://www.aswing.org/

as3httpclient - ActionScript 3 utils/classes to extend HTTP/HTTPS APIs in Flash Player 9 (onwards)
http://code.google.com/p/as3httpclient/

DistortionTweener
http://evolve.reintroducing.com/2007/11/18/as3/as3-distortiontweener/

ascanvas - An adapter of HTML Canvas and fl.display.Graphics
http://code.google.com/p/ascanvas/

dopplr-as3 - actionscript 3 code for accessing data from dopplr.com’s api
http://code.google.com/p/dopplr-as3/

FC64 - an Open-Source Commodore 64 Emulator
https://mirror1.cvsdude.com/trac/osflash/fc64/

FFilmation - AS3 Isometric Engine
http://www.ffilmation.org/website/

Google Maps API
http://code.google.com/apis/maps/documentation/flash/intro.html

FVNC - VNC Client for Flash Player 9 and above
http://osflash.org/fvnc

AS3 Parametric Curve Library
http://www.algorithmist.net/as3pc.html

AWI - AMFPHP-WordPress Integration
http://www.klr20mg.com/awi/

as3webservice - Open-source Webservice class implementation in AS3 for Flash CS3 IDE
http://code.google.com/p/as3webservice/

as3jayrock - AS3 wrapper for Jayrock communication
http://code.google.com/p/as3jayrock/

ASAP Library - A library for the development of maintainable, multi-movie, interactive applications.
http://asaplibrary.org/

비디오 프로그래밍

Posted 2009.02.11 20:38

onMetaData의 정보

width : 비디오 파일의 폭
height : 비디오 파일의 높이
videodatarate : 비디오 데이터 속도
cuePoints : 큐포인트의 배열
framerate : 재생속도
videocodecid : 비디오 인코딩에 사용된 코덱 버전
duration : 전체 재생시간
audiodatarate : 오디오의 kbps(초당 킬로바이트) 속도
canSeekToEnd : FLV 파일이 점진적 다운로드 무비 클립의 파일 끝까지 검색할 수 있는 불리언값
audiodelay : 영상과 오디오간의 지연시간을 보정한 시간

CuePoint로 설정할 수 있는 값은 4개로 한정되어있다.
name : 큐포인트 이름
type : 인코딩시 선택된 event나 navigation
parameters : 변수와 값
time : 큐포인트 위치의 시간

parameters에 값이 있다면 해당 변수명으로 한 depths 더 들어간다.

BitmapData

Posted 2009.02.11 15:03

 

Public 속성

height : int
[read-only] 비트맵 이미지의 높이(픽셀 단위)입니다.

rect : Rectangle
[read-only] 비트맵 이미지의 크기와 위치를 정의하는 사각형입니다.

transparent : Boolean
[read-only] 비트맵 이미지에서 픽셀별 투명도를 지원하는지 여부를 정의합니다.

width : int
[read-only] 비트맵 이미지의 폭(픽셀 단위)입니다.


Public 메서드

BitmapData(width:int, height:int, transparent:Boolean = true, fillColor:uint = 0xFFFFFFFF)
지정된 폭과 높이로 BitmapData 객체를 만듭니다.

applyFilter(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, filter:BitmapFilter):void
소스 이미지와 filter 객체를 사용하여 필터링된 이미지를 생성합니다.

clone():BitmapData
원본 인스턴스를 내포된 비트맵까지 똑같이 복제한 새 BitmapData 객체를 반환합니다.

colorTransform(rect:Rectangle, colorTransform:ColorTransform):void
ColorTransform 객체를 사용하여 비트맵 이미지의 지정된 영역에서 색상 값을 조정합니다

compare(otherBitmapData:BitmapData):Object
두 BitmapData 객체를 비교합니다.

copyChannel(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, sourceChannel:uint, destChannel:uint):void
현재 BitmapData 객체나 다른 BitmapData 객체의 채널에서 현재 BitmapData 객체의 채널로 데이터를 이전합니다.

copyPixels(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, alphaBitmapData:BitmapData = null, alphaPoint:Point = null, mergeAlpha:Boolean = false):void
연장 효과나 회전 효과 또는 색상 효과 없이 이미지에서 픽셀을 조작할 수 있는 빠른 경로를 제공합니다.

dispose():void
BitmapData 객체를 저장하는 데 사용된 메모리를 비웁니다.

draw(source:IBitmapDrawable, matrix:Matrix = null, colorTransform:ColorTransform = null, blendMode:String = null, clipRect:Rectangle = null, smoothing:Boolean = false):void
Flash Player 벡터 렌더러를 사용하여 비트맵 이미지에 소스 표시 객체를 그립니다.

fillRect(rect:Rectangle, color:uint):void
사각형의 픽셀 영역을 지정된 ARGB 색상으로 채웁니다.

floodFill(x:int, y:int, color:uint):void
(x, y) 좌표에서 시작하는 이미지에서 색상 채우기 작업을 수행하여 특정 색상으로 채웁니다.

generateFilterRect(sourceRect:Rectangle, filter:BitmapFilter):Rectangle
지정된 BitmapData 객체와 소스 사각형 및 필터 객체를 기준으로 applyFilter() 메서드 호출이 적용될 대상 사각형을 결정합니다.

getColorBoundsRect(mask:uint, color:uint, findColor:Boolean = true):Rectangle
사각형 영역이 비트맵 이미지 내에서 지정된 색상의 모든 픽셀을 포함할지(findColor 매개 변수가 true로 설정된 경우) 또는 지정된 색상을 제외한 모든 픽셀을 포함할지(findColor 매개 변수가 false로 설정된 경우)를 결정합니다.

getPixel(x:int, y:int):uint
특정 지점(x, y)에서 BitmapData 객체의 RGB 픽셀 값을 나타내는 정수를 반환합니다.
   
getPixel32(x:int, y:int):uint
알파 채널 데이터와 RGB 데이터를 포함하는 ARGB 색상 값을 반환합니다.

getPixels(rect:Rectangle):ByteArray
픽셀 데이터의 사각형 영역에서 바이트 배열을 생성합니다.

hasOwnProperty(name:String):Boolean
지정된 속성이 객체에 정의되어 있는지 여부를 나타냅니다.

hitTest(firstPoint:Point, firstAlphaThreshold:uint, secondObject:Object, secondBitmapDataPoint:Point = null, secondAlphaThreshold:uint = 1):Boolean
하나의 비트맵 이미지와 특정한 점, 사각형 또는 다른 비트맵 이미지 간의 픽셀 수준 히트 감지를 수행합니다.

isPrototypeOf(theClass:Object):Boolean
Object 클래스의 인스턴스가 매개 변수로 지정된 객체의 프로토타입 체인에 있는지 여부를 나타냅니다.

lock():void
이 BitmapData 객체를 변경할 때 BitmapData 객체를 참조하는 어떤 객체(예: Bitmap 객체)도 업데이트되지 않도록 이미지를 잠급니다.

merge(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redMultiplier:uint, greenMultiplier:uint, blueMultiplier:uint, alphaMultiplier:uint):void
소스 이미지에서 대상 이미지로 채널별 블렌드를 수행합니다. 

noise(randomSeed:int, low:uint = 0, high:uint = 255, channelOptions:uint = 7, grayScale:Boolean = false):void
임의의 노이즈를 나타내는 픽셀로 이미지를 채웁니다.

paletteMap(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, redArray:Array = null, greenArray:Array = null, blueArray:Array = null, alphaArray:Array = null):void
각 채널에 하나씩 최대 네 개까지의 색상 팔레트 데이터 배열이 있는 이미지에서 색상 채널 값을 다시 매핑합니다. BitmapData

perlinNoise(baseX:Number, baseY:Number, numOctaves:uint, randomSeed:int, stitch:Boolean, fractalNoise:Boolean, channelOptions:uint = 7, grayScale:Boolean = false, offsets:Array = null):void
Perlin 노이즈 이미지를 생성합니다.

pixelDissolve(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, randomSeed:int = 0, numPixels:int = 0, fillColor:uint = 0):int
소스 이미지에서 대상 이미지로, 혹은 같은 이미지를 사용하여 픽셀 디졸브(dissolve)를 수행합니다.

propertyIsEnumerable(name:String):Boolean
지정된 속성이 존재하고 열거 가능한지 여부를 나타냅니다

scroll(x:int, y:int):void
특정 (x, y) 픽셀 양만큼 이미지를 스크롤합니다

setPixel(x:int, y:int, color:uint):void
BitmapData 객체의 단일 픽셀을 설정합니다

setPixel32(x:int, y:int, color:uint):void
BitmapData 객체의 단일 픽셀에 대한 색상 및 알파 투명도 값을 설정합니다

setPixels(rect:Rectangle, inputByteArray:ByteArray):void
바이트 배열을 픽셀 데이터의 사각형 영역으로 변환합니다.

setPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
루프 작업에서 동적 속성을 사용할 수 있는지 여부를 설정합니다.

threshold(sourceBitmapData:BitmapData, sourceRect:Rectangle, destPoint:Point, operation:String, threshold:uint, color:uint = 0, mask:uint = 0xFFFFFFFF, copySource:Boolean = false):uint
이미지의 픽셀 값을 지정된 임계값 기준으로 테스트하고 그 테스트를 통과한 픽셀을 새 색상 값으로 설정합니다.

toString():String
지정된 객체의 문자열 표현을 반환합니다.

unlock(changeRect:Rectangle = null):void
이 BitmapData 객체를 변경할 때 BitmapData 객체를 참조하는 임의의 객체(예: Bitmap 객체)도 업데이트되도록 이미지 잠금을 해제합니다.

 



 

선의 속성

Posted 2009.02.10 20:20

thickness:Number
선의 두께를 포인트 단위로 나타내는 정수이며 유효한 값은 0~ 255까지입니다.
숫자를 지정하지 않았거나 매개 변수가 정의되지 않은 경우 선이 그려지지 않습니다. 0보다 작은 값이 전달될 경우 기본값은 0입니다. 값 0은 매우 가는 두께를 나타내며 최대 두께는 255입니다. 255보다 큰 값이 전달될 경우 기본값은 255입니다.

color:uint(default = 0)
선의 16진수 색상 값입니다. 예를 들어, 빨강은 0xFF0000, 파랑은 0x0000FF 등입니다. 값이 지정되지 않은 경우 기본값은 0x000000(검정)입니다. 선택 사항입니다.

alpha:Number(default = 1.0)
선 색상의 알파 값을 나타내는 숫자로, 유효한 값은 0부터 1까지입니다. 값이 저징되지 않은 경우 기본값은 1(단색)입니다. 값이 0보다 작으면 기본값은 0입니다. 값이 1보다 큰 경우 기본값은 1입니다.

pixelHinting:Boolean(default = false)
전체 픽셀로 획을 힌팅할 것인지 여부를 지정하는 부울 값입니다. 이 값은 곡선의 앵커 위치와 선 획 크기에 모두 영향을 줍니다. pixelHinting이 true로 설정되면 Flash Player는 선의 폭을 전체 픽셀 폭으로 헌팅합니다. pixelHinting이 false로 설정되면 곡선 및 직선에 분리가 발생할 수 있습니다.

scaleMode:String(default = "normal")
사용할 크기 조절 모드를 지정하는 LineScaleMode 클래스 값입니다.
 · LineScaleMode.NORMAL - 객체의 크기가 조절될 때 항상 선 두께를 조절합니다 ( 기본값)
 · LineScaleMode.NONE - 선 두께를 조절하지 않습니다.
 · LineScaleMode.VERTICAL - 객체의 크기가 세로로만 조절되는 경우 선 두께를 조절하지 않습니다. 예를 들어, scaleMode 매개 변수를 LineScaleMode.VERTICAL로 설정하고 1픽셀 선으로 그린 다음과 같은 원을 생각해 볼 수 있습니다. 왼쪽 원의 크기는 세로로만 조절되며, 오른쪽 원의 크기는 세로 및 가로 방향 모두 조절 됩니다.
 · LineScaleMode.HORIZONTAL - 객체의 크기가 가로로만 조절되는 경우 선 두께를 조절하지 않습니다. 예를 들어, scaleMode 매개 변수를 LineScaleMode.HORIZONTAL로 설정하고 1픽셀 선으로 그린 다음과 같은 원을 생각해 볼  수 있습니다. 왼쪽 원의 크기는 가로로만 조절되며, 오른쪽 원의 크기를 세로 및 가로 방향 모두 조절됩니다.

caps:String(default = null)
선 끝의 유형을 지정하는 CapsStyle 클래스 값입니다. 유효 값은 CapsStyle.NONE, CapsStyle.ROUND 및 CapsStyle.SQUARE입니다. 값이 지정되지 않으면 Flash 에서는 동근 끝을 사용합니다.

joints:String(default = null)
각도에 사용된 연결 모양의 유형을 지정하는 JointStyle 클래스 값입니다. 유효값은 JointStyle.BEVEL, JointStyle.MITER 및 JointStyle.ROUND입니다. 값이 지정되지 않으면 Flash에서는 동근 연결을 사용합니다.



Simple Button 만들기

Posted 2009.02.10 15:41

플래시에서 버튼 심벌로 등록을 하면 4개의 상태프레임이 나온다.
up, over, down, hit 이라는 프레임으로 심플버튼에서 역시 4개의 상태를 구분하는
upState, overState, downState, hitTestState 속성이 있다. 이 속성들은 대입식으로 디스플레이 오브젝트를 값을
설정하여야 하고 반드시 hitTestState를 설정하여야 버튼으로 작동하게 된다.

upState : 평상시의 디스플레이 상태
overState : 마우스 커서가 ht영역에 닿을 때의 디스플레이 상태
downState : 마우스로 클릭하였을 때의 디스플레이 상태
hitTestState : 버튼의 영역을 결정하는 곳으로 통상 버튼의 up영역을 사용한다.

디스플레이 리스트

Posted 2009.02.10 15:08

DisplayObject:
DisplayObject 클래스는 표시 목록에 배치할 수 있는 모든 객체의 기본 클래스입니다.

Bitmap:
Bitmap 클래스는 비트맵 이미지를 표시하는 표시 객체를 나타냅니다.

InteractiveObject:
InteractiveObject 클래스는 사용자가 마우스와 키보드를 사용하여 상호 작용할 수 있는 모든 표시 객체의 추상 기본 클래스입니다.

MorphShape:
MorphShape 클래스는 표시 목록에서 MorphShape 객체를 나타냅니다. MorphShape 객체는 ActionScript에서 직접 만들 수 없으며, Flash 제작 도구에서 모양 트윈을 만들 때 함께 만들어집니다.

Shape:
Shape 클래스는 ActionScript 드로잉 API를 사용하여 가벼운 모양을 만드는 데 사용됩니다. Shape 클래스에는 Graphics 클래스의 메서드에 엑세스할 수 있게 해주는 graphics 속성이 포함됩니다.

Static Text:
이 클래스는 표시 목록의 Static Text 객체를 나타냅니다. ActionScript로는 Static Text 객체를 만들 수 없습니다. Static
Text 객체를 만들려면 제작 도구를 사용해야 합니다.

Video:
Video 클래스를 사용하면 SWF 파일에 포함하지 않고도 응용 프로그램에서 라이브 스트리밍 비디오를 표시할 수 있습니다.

DisplayObjectContainer:
DisplayObjectContainer 클래스는 표시 목록에서 표시 객체 컨테이너 역할을 할 수 있는 모든 객체에 대한 기본 클래스입니다.

SimpleButton:
SimpleButton 클래스를 사용하여 SWF 파일에 있는 버튼 심볼의 모든 인스턴스를 제어할 수 있습니다. 제작 도구에서 버튼 인스턴스를 만든 후 SimpleButton 클래스의 메서드와 속성을 사용하여 ActionScript에서 버튼을 조작할 수 있습니다.

TextField:
TextFiled 클래스를 사용하면 텍스트 표시 및 입력을 위한 표시 객체를 만들 수 있습니다.

Loader:
Loader 클래스는 SWF 파일이나 이미지(jpg, png 또는 gif)파일을 로드하는데 사용됩니다.

Sprite:
Sprite 객체는 무비 클립과 유사하지만, 타임라인이 없기 때문에 타임라인이 필요 없는 객체에 적합한 기본 클래스입니다.

Stage:
전역적으로 액세스할 수 없으며 DisplayObject 인스턴스의 stage 속성을 통해 액세스해야합니다.

MovieClip:
MovieClip 클래스는 Sprite, DisplayObjectContainer, InteractiveObject, DisplayObject 및 EventDispatcher 클래스로 부터 상속됩니다. Sprite 객체와 달리 MovieClip 객체에는 타임라인이 있습니다.