我目前正在开发一个项目,需要在不使用像Tomcat这样的服务器的情况下从空中与Java通信。为此我找到并使用Flerry。Java和Flex与Flerry之间的消息传递
Java和Air之间的通信没有问题,只要我尝试从我最初从Air实例化的类发送消息。
我试图做的是对来自Java中的消息类的消息进行下标并使用该类将信息和错误发送给来自Java的Air。
MessageController.java:
public class MessageController
{
public MessageController()
{
}
public static void sendErrorMessage(String errorMessage)
{
NativeObject.sendMessage(errorMessage, "error");
}
public static void sendInfoMessage(String infoMessage)
{
NativeObject.sendMessage(infoMessage, "info");
}
}
在空气中我的消息类创建NativeObject和订阅消息:
var messageController:NativeObject = new NativeObject();
messageController.source = "controller.MessageController" ;
messageController.singleton = true;
messageController.debug = false;
messageController.addEventListener(FaultEvent.FAULT, onFileControllerFault, false, 0, true);
messageController.subscribe("info", infoMessageHandler);
messageController.subscribe("error", errorMessageHandler);
正如你能猜到,这是行不通的。 看来,我只能派遣从类,我直接订阅的消息,例如,如果我这样做:
messageController.start();
,并在我的MessageController.java我把这个:
public void start()
{
NativeObject.sendMessage("test message", "info");
}
infoMessageHandler会收到包含测试消息的消息,因为它应该如此。
如何从Java中的任何类派发消息并在空中端捕获它们?
您正在创建AIR应用程序,对吗?它看起来像Flerry使用Adobe AIR的NativeProcess功能;这将不会在基于Flex的Web应用程序中提供。 – JeffryHouser
Flextras说什么。这就是为什么你使用基于web的技术,如tomcat(但真的,这只是部署你的服务器)与前端进行通信。 –
@Flextras我正在创建一个AIR应用程序。我编辑了这篇文章。 – Raeghin