2

我有一个远程 flex SharedObject,我正在尝试(使用 Red5)向所有客户端发送一条消息和一个带有一些用户/发送者数据的对象。

问题是:客户端中显示的值是存储在它们上的值,而不是我的 SO 中的值。

继承人一些代码:

protected function btSend_clickHandler(event:MouseEvent):void
{               
    soChat.setProperty("msg",tiMessage.text);
    soChat.setProperty("userVO",modtrackModel.userVO);
    tiMessage.text = "";        

}

private function syncListener(event:SyncEvent):void
{
    for(var i:Object in event.changeList) {
        var changeObj:Object = event.changeList[i];

        switch(changeObj.name) {
            case "msg":                 
               newMessage(event.target.data["userVO"].userName);                                                                                        
               break;

        }
    }
}


public function newMessage( msg:String):void
{           
    Alert.show(msg);
}

所以问题是,如果我在浏览器 A 中登录为 Ricardo,在浏览器 B 中登录为 Rodrigo,则警报显示浏览器 A 中的 Ricardo 和浏览器 B 中的 Rodrigo ......它不应该,对吗?它应该显示我的 SO 中设置的最后一个值,对吗?

Ty 寻求任何帮助,并为我糟糕的英语感到抱歉。

4

1 回答 1

0

您在此处定义 msg 值:

newMessage(event.target.data["userVO"].userName);  

哪个正在将用户名信息显示在警报中。您应该将其更改为要显示的值。

于 2012-10-31T12:44:05.923 回答