Flash 用于包含XML数据的列表的自定义cellRenderer
我有一个游戏精灵代表一个游戏室最多有3名玩家,它的工作正常。并且希望基于来自套接字的XML数据,用这些游戏的填充列表组件 我准备了一个简单的测试用例来演示我的问题- ListTest.fla(其库中应具有列表组件): 屏幕截图: 正如您看到的,一个独立的游戏显示正常,但作为列表组件中的cellRenderer,它失败了-我不知道如何设置列表项的id 请告诉我如何修理它 谢谢,, 亚历克斯 更新:Flash 用于包含XML数据的列表的自定义cellRenderer,flash,actionscript-3,actionscript,Flash,Actionscript 3,Actionscript,我有一个游戏精灵代表一个游戏室最多有3名玩家,它的工作正常。并且希望基于来自套接字的XML数据,用这些游戏的填充列表组件 我准备了一个简单的测试用例来演示我的问题- ListTest.fla(其库中应具有列表组件): 屏幕截图: 正如您看到的,一个独立的游戏显示正常,但作为列表组件中的cellRenderer,它失败了-我不知道如何设置列表项的id 请告诉我如何修理它 谢谢,, 亚历克斯 更新: public function set data(d:Object):void {
public function set data(d:Object):void {
_data = d;
id = d.id;
}
正如克劳斯建议的那样,现在一切正常,但是我如何获得用户的ID和姓名呢?当我在上述方法中设置断点时,我看到d.user只是一个空字符串“”
id=d.id代码>
非常感谢。我在debugger中跟踪了集合数据,它的d参数实际上是一个对象,而不是XML。Flash似乎将遍历dataProvider XML的所有一级子项,并为每个子项创建一个对象,其中属性为属性(子项也为属性,但它们将是空字符串)。然而,我的新问题是,我需要访问每个游戏的子项用户,但是d.user只是一个空字符串:-(如果您想访问子对象,可能需要将XML预解析为一个对象数组,该数组保存数据提供程序中所需的数据,并传递该数组而不是XML。感谢您回来回答这个问题 var games:XML = <games/>; games.appendChild(xml.game); var dp:DataProvider = new DataProvider(games); var games:Array = []; for each(var g:XML in xml.game) { games.push({ id: g.@id, users: g.user }); } var dp:DataProvider = new DataProvider(games); var users:XMLList = d.user; for each(var u:XML in users) { trace(u.@id, u.@name); }