ユーザーがログインして現在のプレイヤーのリストを表示するオンライン ゲームを作成しています。ユーザーが「ルーム」に入ると、そのルームの User オブジェクトとしてユーザーのリストを持つ Room オブジェクトを含む SFSEvent が送出されます。そのイベントのコールバック関数として、配列である現在のユーザーのリストを取得し、ビュー スタックの子インデックスを切り替えてから、ユーザー リスト配列を ArrayList にラップしてから、それを MXML Spark List コンポーネントの dataSource に割り当てます。これが私のコードです:
私の Actionscript コード セクション (PreGame.as):
private function onRoomJoin(event:SFSEvent):void
{
const room:Room = this._sfs.getRoomByName(PREGAME_ROOM);
this.selectedChild = waitingRoom;
/** I know I should be using event listeners
* but this is a temporary fix, otherwise
* I keep getting null object errors
* do to the li_users list not being
* created in time for the dataProvider assignment **/
setTimeout(function ():void {
const userList:ArrayList = new ArrayList(room.userList);
this.li_users.dataProvider = userList; // This is where the error gets thrown
},1000);
}
私のMXMLコード:
<?xml version="1.0" encoding="utf-8"?>
<mx:ViewStack xmlns:fx="http://ns.adobe.com/mxml/2009"
xmlns:s="library://ns.adobe.com/flex/spark"
xmlns:mx="library://ns.adobe.com/flex/mx"
initialize="preGame_initializeHandler(event)"
>
<fx:Script source="PreGame.as"/>
<s:NavigatorContent id="nc_loginScreen">
/** Login Screen Code **/
</s:NavigatorContent>
/** Start of Waiting Room code **/
<s:NavigatorContent id="waitingRoom">
<s:Panel id="pn_users"
width="400" height="400"
title="Users">
/** This is the List in question **/
<s:List id="li_users"
width="100%" height="100%"/>
</s:Panel>
</s:NavigatorContent>
</mx:ViewStack>
ただし、次のエラーが発生し続けます。
TypeError: Error #1010: A term is undefined and has no properties
私が間違っていることはありますか?arrayList にはデータがあるため、空/null ではないことがわかっています。