달력

3

« 2024/3 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
2009. 7. 16. 17:42

Flex 3 조각지식 삽질예방/Flex2009. 7. 16. 17:42

팝업 확인 버튼 띄우기
import mx.controls.Alert;
Alert.show('LinkButton selected!');


Application 클래스

<mx:Application  ...> 내부에서 application이라고 하면 Application에 대한 인스턴스, 즉 자기자신을 나타낸다.
Application 클래스는 싱글톤으로써, 자기자신에 대한 객체 참조를 Application.application이라는 static 멤버변수에 집어넣는다.


for each 반복문

var ary:Array = [1, 2, 3, 4];
var a:int;
for each (a in ary) {
    // do something...
}


[Bindable] 은 대체 무슨 역할???

  • [Bindable] 바로 아래에 선언된 set/get함수(프로퍼티)나 클래스가 변동되었을 때 이를 바인딩하고있는 다른 객체들에게 notify해준다.
  • data binding expression ==> {}로 감싼 수식을 말한다. 이 안에서는 & 대신 &amp;를 사용하여야 한다.
  • XMXL로 작성하는 것은 자동으로 Bindable 범주내로 들어가는 듯 하다. MXML에서 자동으로 해주는 건지 그것들이 UIComponent이기 때문인지는 아직 알 수 없다. (UIComponent이기 때문인 것 같다.)
  • 결국 [Bindable]은 바로 아래에 있는 property가 바인딩의 source로 등록되게 해준다. 만약 기존 UIComponent의 property라면 굳이 안해줘도 도리 것이다. source로 등록되어 있으며 property값 변화가 일어나는 이벤트가 일어날 때 source에서 destination으로 값 복사를 해준다. property값 변화가 일어나는 이벤트는 직접 지정 가능하다. 직접 지정하면 setter함수 내에서 자신이 값 복사 시점을 직접 상세히 지정해줄 수 있다.


Property 직접 bind 시키기 / 함수로 바인드시키기

   
BindingUtils.bindSetter(bindFunc, textIn, 'text');
    // 원래 String대신에 Object인자로 받게 됨.
    public function bindFunc(src:String):void {
        textOut.text=String(src);
    }
       
또는
    BindingUtils.bindProperty(textIn, 'text', this, ['textOut', 'text']);

textIn은 텍스트 인풋을 받는 곳이고, textOut은 그냥 레이블이다...

XML 코딩에서 :
<mx:Text id="myText" text="{user.name.firstName.text}" />

액션 스크립트:
bindProperty(myText, "text", user, ["name", "firstName", "text"]);
 => user["name"]["firstName"]["text"] 와 같이 번역된다.!!!


ArrayCollection을 bind 시키기

얘는 직접 멤버를 컨트롤하기 힘드므로,
ary.addEventListener(CollectionEvent.COLLECTION_CHANGE, collChange);

을 추가시켜 주어야 한다.           
그리고 함수에서는
   
public function collChange(e:CollectionEvent):void {
        Button(aryBox.getChildAt(e.location)).label =
 ary.getItemAt(e.location).toString();
}

와 같이 한다. e.location은 변화가 발생된 인덱스를 말한다.


fillColor 바꾸기

css 프로퍼티나, Design모드에서는 해당 항목을 0x000000, 0x000000 라고 하면 그라데이션으로 색을 줄 수 있다.
만약 직접 세팅하고 싶다면
btn.setStyle('fillColors', [0x000000, 0x000000]);

라고하면 된다.


String

'a'.charCodeAt(0);

'a'자체가 스트링이다.

String.fromCharCode(65)
을 이용하면, 직접 아스키코드로부터 캐릭터를 얻어낼 수 있다. 캐릭터 타입은 따로 없고, String을 이용하면 될 것 같다.


Array

            var tmp:Array = [];
            tmp[0] = 3;
            tmp[1] = 3;
            trace('length: ', tmp.length);
말그대로 그냥 동적인 배열.
:
Posted by Kwang-sung Jun