0

目前我正在从存储在数据网格中的数据库中检索数据。我创建了一个使用 ItemRenderer 的新列,在其中我想显示一个 facebook 个人资料图像。我没有将这些存储在我的数据库中,因为它们可以公开访问。我有我用户的 facebook ID,所以我希望将此数据与所需的 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
    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 回答
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 回答