2012-05-05 8 views
0

現在、私はデータベースからデータグリッドに格納されているデータを取得しています。 ItemRendererを使用する新しい列を作成しました。この中に、私はFacebookのプロフィール画像を表示したいと思います。私はこれらを公開してアクセスすることができるので、私はこれらをデータベースの中に保存していません。私は自分のFacebookのIDを持っているので、このデータを必要なURLにバインドして正しいイメージを表示したいと考えていました。Adob​​e 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の要素にアクセスする必要があります。

だから、ほとんどの場合、あなたはこのような何かをしたい:

<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

関連する問題