如何在Flex应用程序中嵌入“Share on Facebook”按钮?

时间:2010-09-09 22:36:30

标签: flex facebook

我正在尝试复制Youtube上“在Facebook上分享”按钮的行为。基本上,在Flex应用程序中我会有一个按钮,当我点击它时,我想要一个弹出窗口,让我可以在墙上发布一些东西。

虽然可以调用javascript来打开弹出窗口,但我希望能够设置图片和我发布的文本。

您知道如何将图片或文字设置为共享窗口的参数吗?

谢谢!

3 个答案:

答案 0 :(得分:1)

这很简单。 Youtube使用Facebook API弹出一个新窗口(Info on Facebook sharer API)。

要在flex中执行此操作,

  1. 创建一个按钮,onClick将调用javascript方法ExternalInterface.call("fbLink", "www.yahoo.com");
  2. 在您的HTML文件(很可能是index.template.html)中添加JavaScript方法,fbLink执行以下操作:

    function fbLink(url){     window.popup(“http://www.facebook.com/sharer.php?u=”+ url,{height:440,width:620,scrollbars:true}) }

  3. 现在,当用户点击按钮时,他们将与facebook帐户共享链接“yahoo.com”。

答案 1 :(得分:0)

据我了解你在facebook分享按钮的html页面中访问js popup时需要一些帮助,所以你应该在这个casa中使用ExternalInterface并使用js界面中的getElementById函数访问所需的DOM节点。

在其他情况下,我想建议您阅读另一种方式http://www.riaxe.com/blog/flex/publish-into-facebook-wall-from-flex/

答案 2 :(得分:0)

您似乎想要在Flash应用程序上有一个按钮,一旦点击它就会打开Facebook页面,该页面共享与所单击按钮相关的视频/图像。你想要做的只是创建一个按钮,点击打开一个新的网站到Facebook使用他们的共享API,具有以下格式:

var facebookShare:String = "http://www.facebook.com/share.php?u=' + encodedVideoLink + '&t='+ encodedVideoText";

u参数代表您想要分享的链接,t参数代表您要分享的作品的标题,无论是图片还是视频。

您希望在MouseEvent.CLICK上添加一个事件侦听器,该侦听器具有一个方法,该方法处理打开facebook页面的facebook页面,如上所示。要在浏览器上打开另一个页面,您可以使用名为URLNavigator的AS3类:http://www.danishmetal.dk/project/source/com/zorked/URLNavigator.as

总结一下,沿着这些方向可以做到:

var facebookShare:String = "http://www.facebook.com/share.php?u=' + encodedVideoLink + '&t='+ encodedVideoText";
    facebookButton.addEventListener(MouseEvent.CLICK, this._goToUrl(facebookShare));

private function _goToUrl(link:String):Function {

        var window:String = "_blank",
            feats = "",
            thisOverlay:Object = this; // to not lose scope when returning a func

        return function (e:MouseEvent):void {
                trace("Opening link to:"+link);
                try { URLNavigator.ChangePage(link, window, feats); }
                catch (e:Error) { trace("error launching "+link+" in "+window+" with feature set "+feats); }
            }
        }

我希望有所帮助。如果您对代码有疑问,请告诉我。