我想说你有两条可能的路线在这里。
在您的服务器上创建脚本以启动与您的无线应用程序的连接。例如使用php和socket,链接将会是http://myserver/nextslide.php
,然后可以连接到您选择的TCP端口上的空中应用程序。这里有很多选项,具体取决于您的服务器和您可用的脚本语言。
将您的空气应用程序设置为Web服务器,以允许您的浏览器直接发送HTTP请求。例如,有一个非常简单的空中HTTP服务器here(它并不比在每个请求结束时关闭连接的套接字服务器多)。您仍然可以像现在这样从主Web服务器提供HTML,但是从空中应用程序中的HTTP服务器,只需在HTTP标头中找到相关URI时移动到下一张幻灯片。如果你只需要它在你的本地网络中工作,这就是我想要的。
示例AS3代码上面的选项2,使用空气投影机的FlashDevelop测试:
package
{
import flash.display.MovieClip;
import flash.display.Sprite;
import flash.events.Event;
import flash.events.ProgressEvent;
import flash.events.ServerSocketConnectEvent;
import flash.net.ServerSocket;
import flash.net.Socket;
import flash.utils.ByteArray;
public class Main extends Sprite
{
private var serverSocket:ServerSocket;
private var port:int = 8080;
public function Main():void
{
listen();
}
private function listen():void
{
try
{
serverSocket = new ServerSocket();
serverSocket.addEventListener(Event.CONNECT, socketConnectHandler);
serverSocket.bind(port);
serverSocket.listen();
trace("Listening on port " + port + "...\n");
}
catch (error:Error)
{
trace("Failed to open server socket");
}
}
private function socketConnectHandler(event:ServerSocketConnectEvent):void
{
var socket:Socket = event.socket;
socket.addEventListener(ProgressEvent.SOCKET_DATA, socketDataHandler);
}
private function socketDataHandler(event:ProgressEvent):void
{
try
{
var socket:Socket = event.target as Socket;
var bytes:ByteArray = new ByteArray();
socket.readBytes(bytes);
var request:String = "" + bytes;
trace(request);
var url:String = request.substring(4, request.indexOf("HTTP/") - 1);
socket.writeUTFBytes("HTTP/1.1 200 OK\n");
socket.writeUTFBytes("Content-Type: text/plain\n\n");
if (url == "/next")
{
socket.writeUTFBytes("next frame triggered");
var someMovie:MovieClip = new MovieClip(); //define this as a reference to the movie clip you want to control
someMovie.nextFrame();
}
else
{
socket.writeUTFBytes("The url is " + url);
}
socket.flush();
socket.close();
}
catch (error:Error)
{
trace(error);
}
}
}
}
那么,你能收到你的AIR应用程序确定的消息?只需要帮助改变框架? – 2013-04-15 17:43:06
好吧,当我在空中应用上运行调试时,空中应用只能访问服务器。这不是我需要的流量。但它确实证明存在某种连接性。 需要做的事情是空气应用程序使用端口在服务器上侦听连接,然后以某种方式从HTML页面触发所有这些。 –