使用ExternalInterface发送HTTP请求

时间:2013-02-26 18:00:00

标签: actionscript-3 flash

您可能知道从Flash应用程序发送自定义HTTP请求总是很困难。例如,如果您有基于Authh的受保护的Web服务,您将无法通过GET请求从Flash请求它,因为只有POST请求可以具有自定义标头。这真的很麻烦。

我想知道是否有人尝试使用ExternalInterface使用Javascript发送HTTP请求?我们的想法是让JSmethod发送请求并将数据传回Flash。

有什么想法?

1 个答案:

答案 0 :(得分:3)

是的,有可能,我已经完成了几次使用Facebook JS sdk并将数据传回我的swf。

通常你用你的SWF调用JS函数:

ExternalInterface.call("getFriends",params);

在JS方面:

function getFriends(params)
{
    FB.api('me/friends',function(response){
         mySwf.onGetFriendsComplete(response);
    });
}

在SWF一侧接收来自JS的电话:

ExternalInterface.addCallback("onGetFriendsComplete",onGetFriendsComplete);

private function onGetFriendsComplete(data)
{
   trace(data);
}

如果您在本地运行SWF,可能需要在ExternalInterface调用之前放置检查以确保它可用:

if(ExternalInterface.available)
    ExternalInterface.call(...);