我正在尝试在我构建的多点触控应用程序中解决一些问题。它使用flosc与发送多点触控事件的xml套接字服务器进行通信。
大部分时间这一切都很好用。
但是,如果我的意思是并且使用多点触控事件充斥它,Flash就无法跟上解析输入,并且套接字只是不断地获取数据,直到它赶上或整个事情崩溃。
一旦有太多*,我就没有问题丢弃输入,但是我在设计一个聪明的方法时遇到了麻烦。
*该应用程序同时执行6-10个输入,没有问题,一旦我必须处理20+,事情开始变得毛茸茸,这基本上意味着有人躺在桌子上;)
答案 0 :(得分:1)
它在哪里窒息?首先,我将从做一些分析开始。
描述“服务器”:
描述客户端:
就个人而言,如果可以的话,我会避免使用XML,并且/或者尝试对xml进行延迟解码(当你知道需要它时这样做...所以你可以抛弃XML块而不浪费cpu周期你的程序越来越多了。)
我会尝试使用原始Socket类http://www.adobe.com/livedocs/flash/9.0/main/00000318.html#wp128960和自定义数据包格式,每个索引包含相关数据的数组。在psudocode中:
messageArray = [message type, arg0, arg1, arg2...];
因此您可能会将“鼠标移动事件”定义为:
MessageConstants.MOUSE_MOVE = 0; // or whatever id you want
messageArray = [MessageConstants.MOUSE_MOVE, mouseDeltaX, mouseDeltaY];
然后使用AMF http://en.wikipedia.org/wiki/Action_Message_Format通过线路序列化数据。
希望这有帮助。