首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ActionScript报告对象与MATLAB的坐标

ActionScript报告对象与MATLAB的坐标
EN

Stack Overflow用户
提问于 2012-07-04 18:40:01
回答 1查看 249关注 0票数 0

我正在运行一个Flash电影,其中包含一个移动的对象,用于视觉科学实验。当我跟随屏幕上的刺激时,我正在使用眼球跟踪器来监控眼球的运动。Flash似乎是一个很好的选择来控制我的刺激,因为它允许矢量缩放和平滑的刺激运动。

眼球跟踪器正在使用MATLAB运行。我想将物体的坐标从ActionScript输出到MATLAB,这样在我的最终数据输出中,我可以将刺激位置与眼睛位置进行比较。

我知道我可能能够通过TCP/IP与MATLAB通信(尽管实际过程对我来说是陌生的),我想知道如何提取对象(圆对象)的X和Y坐标并将它们发送到MATLAB?

任何帮助都将不胜感激

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-04 19:06:11

我不太了解MATLAB以及如何为它编程,但我会给你一个AS3方面的例子。如果要使用TCP/IP通信,首先需要定义一个服务器和一个客户机。ServerSocket类只支持Flash端的AIR应用程序,所以你应该决定是制作Flash端的服务器还是客户端。如果你想让它成为服务器,你需要编写类似这样的代码:

代码语言:javascript
复制
const IP_ADDRESS:String = "127.0.0.1"; //for local hosting
const PORT:uint = 3444; //basically, you can take any port you want, but higher would be better so that it won't have issues with other programs using ports.

var OurServerSocket:ServerSocket = new ServerSocket();
var ConnectedSocket:Socket;
OurServerSocket.addEventListener(ServerSocketConnectEvent.CONNECT, HandleSocketConnection); //adding listener for socket connections, that we'll handle in our method.
OurServerSocket.bind(PORT, IP_ADRESS); //just binding our socket to the IP and port that we defined 
OurServerSocket.listen();

function HandleSocketConnection(e:ServerSocketConnectEvent):void
{
    ConnectedSocket = e.socket; //just saving connected socket instance
    ConnectedSocket.addEventListener(ProgressEvent.SOCKET_DATA, HandleSocketData); //adding listener to handle any data that comes through our connected socket
    trace("Connected: " + ConnectedSocket.remoteAddress);
}

function HandleSocketData(e:ProgressEvent):void
{
    var socket:Socket = e.target as Socket;
    var bytes:ByteArray = new ByteArray();
    socket.readBytes(bytes,0,0);
    var Data:String = bytes.toString(); //when the data comes in we store it in this string so that you can than manipulate easily
}

//use this function to send data through the connected socket
function WriteToSocket(data:String):void
{
    var dataArray:ByteArray = new ByteArray();
    dataArray.writeMultiByte(data, "utf-8");
    ConnectedSocket.writeBytes(dataArray); 
}

如果您决定将客户端用于Flash端,请按如下方式连接到您的服务器:

代码语言:javascript
复制
var SocketConnection:Socket = new Socket();
SocketConnection.connect(IP_ADDRESS, PORT);

然后,您可以使用相同的写入和读取方法进行通信。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11327436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档