Actionscript 3 AS3:SharedObject在管理控制台中不可见
我在localhost上使用“Adobe media server Starter 5”创建了一个媒体服务器,我可以通过AS3 AIR应用程序连接到它。我可以在“Adobe Media Server管理控制台”中看到名为“SimpleServer”的应用程序中的连接,我得到了关于该连接的积极反馈: 已接受来自IP:127.0.0.1、引用者:app:/SimpleServer.swf、pageurl: 当我试图创建一个新的SharedObject时,我既没有得到编译时错误,也没有得到运行时错误,我根本没有得到任何反馈。我正在使用以下代码:Actionscript 3 AS3:SharedObject在管理控制台中不可见,actionscript-3,shared-objects,flash-media-server,Actionscript 3,Shared Objects,Flash Media Server,我在localhost上使用“Adobe media server Starter 5”创建了一个媒体服务器,我可以通过AS3 AIR应用程序连接到它。我可以在“Adobe Media Server管理控制台”中看到名为“SimpleServer”的应用程序中的连接,我得到了关于该连接的积极反馈: 已接受来自IP:127.0.0.1、引用者:app:/SimpleServer.swf、pageurl: 当我试图创建一个新的SharedObject时,我既没有得到编译时错误,也没有得到运行时错误,
var shared:SharedObject = SharedObject.getRemote("HelloWorld", "rtmp://localhost/SimpleServer");
shared.addEventListener(SyncEvent.SYNC, syncEventHandler);
shared.connect(nc);
网络连接的创建如下所示:
nc = new NetConnection();
nc.addEventListener(NetStatusEvent.NET_STATUS, netStatusHandler);
nc.connect("rtmp://localhost/SimpleServer");
nc.client = this;
我在“查看应用程序”->“共享对象”中看不到共享对象,也没有收到有关创建的反馈。这就像从未创建过对象一样。我还尝试在SharedObject上设置属性,但没有效果:
shared.setProperty("test", false);
这个问题有简单的解决方案吗?还是我必须配置高级服务器?提前谢谢你 正如Sunil在评论中所问的那样,
syncEventHandler
在运行代码时是否调用过
部分回答您的问题:不,您不需要任何特定的服务器端配置就可以在客户端检索SharedObject。在执行获取/连接远程共享对象的任何尝试之前,只需确保已连接到服务器
有关更多信息,请参阅
此外,在尝试获取远程共享对象时,一个很好的做法是使用NetConnection
实例中的uri:
var shared:SharedObject = SharedObject.getRemote("HelloWorld", nc.uri);
您在上面添加的事件处理程序是否执行了?在调用
SharedObject
上的connect()
之前,是否正在等待NetConnection连接?似乎没有执行syncEventHandler
。执行netStatusHandler
并将NetConnection
指示为已连接,因此在尝试连接SharedObject
时,它已连接……我设法解决了问题,就像我对duTr的答案发表评论一样。谢谢你的努力!我在键盘事件上创建了SharedObject。我将变量shared
更改为全局变量,因此它将存在于程序的整个运行时中。现在我可以在管理控制台中看到SharedObject。当我声明shared
local,但将其推到全局数组或其他对象上时,也会产生相同的效果。我还添加了行shared.client=this
,但我发现这没有效果。谢谢你的帮助!