2011-03-22 2 views
2

함수를 만들 때의 효과는 무엇입니까? 이벤트 이름을 지정하지 않고 flex로 바인드 할 수 있습니까? 내 코드에서이 작업을 수행 한 및 관련된 이벤트없이 괜찮게 작동하는 것으로 보인다 (그러나 경고를 생성합니다). 이러한 함수에서 바인딩을 제거하면 코드에 영향을 미치고 함수의 반환 값이 변경되면 변경 사항이 반영되지 않습니다.이벤트 이름이 지정되지 않고 바인드 가능 함수가 지정되었습니다.

[Bindable] 태그와 관련된 이벤트 없이도 Bindable 함수가 작동하는 방법과 이유 및 방법을 설명 할 수 있습니까?

예 :

<mx:Image id="a" source="{getImage(1)}" useHandCursor="true" buttonMode="true" width="10" height="10" click="finalize(event)" autoLoad="true"/> 

[Bindable] private var _ratingSelected:int; 

[Bindable] 
private function getImage(value:int):String 
    { 
if (value <= _ratingSelected) 
return 'images/hr/applicants/star_icon.png'; 
else 
return 'images/hr/applicants/star_icon_dis.png'; 
    } 

여기 된 GetImage 기능에서 바인딩 태그를 제거하는 경우, 이미지가 제대로 실행시에 업데이트됩니다 나던. _ratingSelected는 Bindable 변수입니다. getImage() 함수와 관련된 이벤트가 없어도 Bindable을 만드는 것은 괜찮은 것 같습니다. _ratingSelected 변수 (바인드 가능)의 변경 사항에 대한 변경 사항을 자동으로 감지하고 런타임에 getImage 함수를 호출합니까? 친절하게 계몽하십시오.

감사합니다.

답변

2

Binding 태그에 이벤트 이름을 지정하지 않으면 "propertyChange"이벤트가 사용됩니다. 즉, 프레임 워크가 문서에서 "propertyChange"이벤트를 가져올 때마다 getImage을 다시 호출하여 이미지 소스를 업데이트하려고합니다.

이제 _ratingSelected 값이 업데이트되면 "propertyChange"이벤트가 내부적으로 전달되어 이미지가 업데이트됩니다.

getImage이 실제로 _ratingSelected을 사용하여 반환 값을 생성하는지 여부와 관련이 없습니다. 데이터 바인딩 프레임 워크의 관점에서 getImage_ratingSelected 사이의 유일한 연결은 각각의 값이 변경 될 때 (심지어 실제로는 getImage이 전달하지 않아도) 둘 모두를 전달하도록 요구하는 "propertyChange"이벤트입니다.

+0

많은 도움이되었습니다. 감사. – Tintin

관련 문제