import flash.external.ExternalInterface;
import flash.net.LocalConnection;
var mLocalConnection:LocalConnection;
mLocalConnection = new LocalConnection();
mLocalConnection.connect("xivioview");
mLocalConnection.client=this;
function recieveText(textRecieved):void {
ExternalInterface.call(textRecieved);
};
和发送方swf:
import flash.external.ExternalInterface;
import flash.net.LocalConnection;
function sendtoview(con,val):String {
//create local connection for sending text
var sending_lc:LocalConnection;
sending_lc = new LocalConnection();
sending_lc.send("xivioview", "recieveText", val);
return "kk"
}
ExternalInterface.addCallback("sendtoview", sendtoview);
4条答案
按热度按时间7kjnsjlb1#
我找到了一种方法,我可以在每个页面上制作两个Flash电影,使用LocalConnection调用另一个页面上的JavaScript。
把这个放在AS3的swf中,这是接收器:
和发送方swf:
这是为单向设置的,并且javascript使用它:
这将执行receiver选项卡中的JavaScript代码,但它不会执行,直到您返回到该选项卡(我已经问了一个问题,为什么,还没有回应)
jw5wzhpr2#
我能想到的唯一方法是使用XHR。每个窗口/标签页都与服务器通信,服务器又与其他窗口通信,与gmail聊天的工作方式几乎相同。除了你在同一个客户端上有2个窗口,而不是2个客户端上的1个窗口。
vulvrdjw3#
我只需要在页面加载中执行一个javascript,它将不断地轮询(window.setInterval)sessionStore以获取一个标志,该标志表示有人向我发送了一条消息,然后从sessionStore中读取该消息,然后执行所需的任何操作。
qjp7pelc4#
在HTML5之前,如果文档来源相同,就支持不同JavaScript执行上下文之间的通信。如果不支持,或者没有引用其他
Window
对象,那么可以使用HTML5引入的新的postMessage API。我在这篇stackoverflow answer文章中详细介绍了这两种方法。