2012-05-05 4 views
0

현재 데이터 갤러리에 저장된 데이터베이스에서 데이터를 가져옵니다. ItemRenderer를 사용하는 새로운 열을 만들었습니다.이 안에는 Facebook 프로필 이미지를 표시하고 싶습니다. 공개적으로 액세스 할 수 있기 때문에 데이터베이스에 저장하지 않았습니다. 나는 내 사용자의 페이스 북 ID를 가지고 있으므로이 데이터를 필요한 URL과 바인드하여 올바른 이미지를 표시하려고합니다.Adobe Flex에서 이미지 URL을 데이터베이스의 데이터와 어떻게 바인딩합니까?

나는 다음을 모두 시도 : <s:Image id="fbImg" source="http://graph.facebook.com/{getUserResult.lastResult.facebookid}/picture?‌​type=normal"/>

<s:Image id="fbImg" source="{'http://graph.facebook.com/' + getUserResult.lastResult.facebookid + '/picture?type=normal'}"/>

나는 1120 오류 (정의되지 않은 속성의 접근을) 받고 있어요하지만 난 그 이유를 모르겠어요. 내 데이터 격자는 <s:AsyncListView list="{getUserResult.lastResult}"/>을 사용하여 채워지고 getUserResult.lastResult.databasefield 명령에서 다른 데이터를 가져올 수는 있지만 이미지를 표시 할 수는 없습니다. getUserResult는 데이터베이스에서 데이터를 검색하기 위해 호출 된 php 함수의 결과를 나타냅니다. 도움을 주시면 대단히 감사하겠습니다. 고맙습니다.

답변

0

대부분의 경우 itemRenderer는 getUserResult 서비스에 액세스 할 수 없습니다. 그래서 정의되지 않은 속성에 액세스하고 있다고 말하는 오류가 발생합니다.

itemRenderer에서 렌더러가 표시하려고하는 dataProvider의 요소에 액세스하려면 data 속성을 사용해야합니다.

그래서, 대부분이 같은 것을하고 싶지 :

<s:Image id="fbImg" source="http://graph.facebook.com/{data.facebookid}/picture?‌​type=normal"/> 

그러나, 나는 강하게 itemRenderer를 내부 바인딩 사용에 대해 조언한다. 대신 dataChange 이벤트 핸들러 (내 환경 설정)에서 이미지의 source 속성을 수정하거나 set 데이터 메서드를 재정 의하여 설정하십시오. Here are a bunch of links about itemRenderers that may help;

0
override public function set data(value:Object):void { 
    if (value != null) { 
     super.data = value; 
     this.fbImg.source = "http://graph.facebook.com/" + value.facebookId + "/picture?‌​type=normal value.facebookid"; 
    } 

<s:Image id="fbImg" /> 
+0

바인딩 전용 변수는 나쁜 행동이지만, 이것은 단지의 itemRenderer 그것이 실제 응용 프로그램에 더 적합 할 것이다, 그래서 난 당신의 코드를 수정 된 데이터 기능 –

+1

를 설정 사용하는 방법을 보여입니다. – JeffryHouser

관련 문제