<mx:Canvas height="{_bindHeight==0?100:200}">
<mx:Script>
[Bindable] private var _bindHeight:Number;
</mx:Script>
</mx:Canvas>



위와 같은 코드에서라면... Canvas의 초기 높이는 100이 아니라 200이다 !

이유인 즉은 초기 _bindHeight = Nan 의 값을 가지기 때문이다.

해결 방법 : [Bindable] private var _bindHeight:Number = 0; 과 같이 초기값을 설정해 줘야 한다.

훗....

출처 > http://tawool.tistory.com/51

1. Bindable
사용빈도 : 상
사용 예 :
이 메타데이터의 활용범위는 매우 넓습니다.
일반적으로 화면상에서는 데이터바인딩으로 많이 사용을 하게 됩니다.
그리고 사용자 컴포넌트를 만들때에도 자주 사용하게 됩니다.

[Bindable("directionChanged")]
public function get direction():String{
    reutnr this._direction;
}

public function set direction(value:String):void{
       this._direction = value;
       this.dispatchEvent(new Event("directionChanged"));
    }

이렇게 만들면 이 객체를 사용하는 사용자는 이 properties에 바인딩기능을 사용할수 있게 됩니다.
대부분의 플렉스 비쥬얼 컴포넌트의 properties들은 이런식으로 코딩되어 있습니다.

참고 소스: mx.controls.Button 의 _data 변수의 set / get 를 보세요


2. Inspectable
사용빈도 : 컴포넌트 제작시 상
설명 :
이걸 설정해 놓고 mxml으로 코딩시에 대입가능한값을 자동으로 보여줍니다.
디자인모드에서도 콤보박스에 표시되게 됨니다.

! 여기서 주의할점은 "defaultValue"를 설정한다고 해서 자동으로 값이 설정되지 않습니다.
기본값이 있다면 변수에 기본값을 넣어서 초기화하고 defaultValue도 설정을 하면 됨니다.

사용 예 :
mx_internal var _labelPlacement:String = ButtonLabelPlacement.RIGHT;
[Inspectable(category="General", enumeration="left,right,top,bottom", defaultValue="right")]

public function get labelPlacement():String
    {
        return _labelPlacement;
    }

 public function set labelPlacement(value:String):void
    {
        _labelPlacement = value;
        invalidateSize();
        invalidateDisplayList();
        dispatchEvent(new Event("labelPlacementChanged"));
    }

참고 소스: mx.controls.Button 의 Inspectable 를 검색해보세요.

+ Recent posts