0

現在、データグリッドに保存されているデータベースからデータを取得しています。ItemRendererを使用する新しい列を作成し、その中にFacebookのプロフィール画像を表示したいと思います。これらは公的にアクセスできるため、データベース内に保存していません。私はユーザーのFacebookIDを持っているので、正しい画像を表示するために必要な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関数の結果を参照します。どんな助けでも大歓迎です。ありがとうございました。

4

2 に答える 2

0

ほとんどの場合、itemRendererはgetUserResultサービスにアクセスできません。そのため、未定義のプロパティにアクセスしているというエラーが表示されます。

itemRendererでは、dataプロパティを使用して、レンダラーが表示しようとしているdataProviderの要素にアクセスする必要があります。

したがって、おそらく次のようなことをしたいと思うでしょう。

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

ただし、itemRenderer内でBindingを使用しないことを強くお勧めします。代わりに、dataChangeイベントハンドラー(私の好み)で、またはset dataメソッドをオーバーライドすることにより、画像のソースプロパティを変更します。 ここに役立つかもしれないitemRenderersに関するたくさんのリンクがあります;

于 2012-05-05T03:42:12.130 に答える
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" />
于 2012-05-05T14:24:34.407 に答える