2009. 7. 16. 17:42
Flex 3 조각지식 삽질예방/Flex2009. 7. 16. 17:42
팝업 확인 버튼 띄우기
Application 클래스
<mx:Application ...> 내부에서 application이라고 하면 Application에 대한 인스턴스, 즉 자기자신을 나타낸다.
Application 클래스는 싱글톤으로써, 자기자신에 대한 객체 참조를 Application.application이라는 static 멤버변수에 집어넣는다.
for each 반복문
[Bindable] 은 대체 무슨 역할???
Property 직접 bind 시키기 / 함수로 바인드시키기
import mx.controls.Alert;
Alert.show('LinkButton selected!');
Alert.show('LinkButton selected!');
<mx:Application ...> 내부에서 application이라고 하면 Application에 대한 인스턴스, 즉 자기자신을 나타낸다.
Application 클래스는 싱글톤으로써, 자기자신에 대한 객체 참조를 Application.application이라는 static 멤버변수에 집어넣는다.
var ary:Array = [1, 2, 3, 4];
var a:int;
for each (a in ary) {
// do something...
}
var a:int;
for each (a in ary) {
// do something...
}
- [Bindable] 바로 아래에 선언된 set/get함수(프로퍼티)나 클래스가 변동되었을 때 이를 바인딩하고있는 다른 객체들에게 notify해준다.
- data binding expression ==> {}로 감싼 수식을 말한다. 이 안에서는 & 대신 &를 사용하여야 한다.
- XMXL로 작성하는 것은 자동으로 Bindable 범주내로 들어가는 듯 하다. MXML에서 자동으로 해주는 건지 그것들이 UIComponent이기 때문인지는 아직 알 수 없다. (UIComponent이기 때문인 것 같다.)
- 결국 [Bindable]은 바로 아래에 있는 property가 바인딩의 source로 등록되게 해준다. 만약 기존 UIComponent의 property라면 굳이 안해줘도 도리 것이다. source로 등록되어 있으며 property값 변화가 일어나는 이벤트가 일어날 때 source에서 destination으로 값 복사를 해준다. property값 변화가 일어나는 이벤트는 직접 지정 가능하다. 직접 지정하면 setter함수 내에서 자신이 값 복사 시점을 직접 상세히 지정해줄 수 있다.
BindingUtils.bindSetter(bindFunc, textIn, 'text');
// 원래 String대신에 Object인자로 받게 됨.
public function bindFunc(src:String):void {
textOut.text=String(src);
}
// 원래 String대신에 Object인자로 받게 됨.
public function bindFunc(src:String):void {
textOut.text=String(src);
}
또는
textIn은 텍스트 인풋을 받는 곳이고, textOut은 그냥 레이블이다...
XML 코딩에서 :
액션 스크립트:
=> user["name"]["firstName"]["text"] 와 같이 번역된다.!!!
ArrayCollection을 bind 시키기
얘는 직접 멤버를 컨트롤하기 힘드므로,
을 추가시켜 주어야 한다.
그리고 함수에서는
와 같이 한다. e.location은 변화가 발생된 인덱스를 말한다.
fillColor 바꾸기
css 프로퍼티나, Design모드에서는 해당 항목을 0x000000, 0x000000 라고 하면 그라데이션으로 색을 줄 수 있다.
만약 직접 세팅하고 싶다면
라고하면 된다.
String
'a'자체가 스트링이다.
을 이용하면, 직접 아스키코드로부터 캐릭터를 얻어낼 수 있다. 캐릭터 타입은 따로 없고, String을 이용하면 될 것 같다.
Array
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"]);
얘는 직접 멤버를 컨트롤하기 힘드므로,
ary.addEventListener(CollectionEvent.COLLECTION_CHANGE, collChange);
을 추가시켜 주어야 한다.
그리고 함수에서는
public function collChange(e:CollectionEvent):void {
Button(aryBox.getChildAt(e.location)).label =
Button(aryBox.getChildAt(e.location)).label =
ary.getItemAt(e.location).toString();
}
와 같이 한다. e.location은 변화가 발생된 인덱스를 말한다.
css 프로퍼티나, Design모드에서는 해당 항목을 0x000000, 0x000000 라고 하면 그라데이션으로 색을 줄 수 있다.
만약 직접 세팅하고 싶다면
btn.setStyle('fillColors', [0x000000, 0x000000]);
라고하면 된다.
'a'.charCodeAt(0);
'a'자체가 스트링이다.
String.fromCharCode(65)
var tmp:Array = [];
tmp[0] = 3;
tmp[1] = 3;
trace('length: ', tmp.length);
말그대로 그냥 동적인 배열.tmp[0] = 3;
tmp[1] = 3;
trace('length: ', tmp.length);