2010-09-09 75 views
4

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

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

你知道如何将图像或文本设置为共享窗口的参数吗?

谢谢!

回答

1

这是非常简单的事情。 Youtube使用Facebook API弹出一个新窗口(Info on Facebook sharer API)。

要做到这一点的弯曲,

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

    功能fbLink(URL){ window.popup( “http://www.facebook.com/sharer.php?u=” + URL,{高度:440,宽度:620,滚动条:真}) }

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

0

看来你想在Flash应用程序上有一个按钮,并且一旦点击它就会打开共享与单击按钮相关的视频/图像的Facebook页面。你要做的就是简单地创建上点击使用具有以下格式的份额API打开了一个新的网站,Facebook的按钮是什么:

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

在U参数代表你希望共享的链接, t参数代表你想分享的作品的标题,无论是图片还是视频。

您想在MouseEvent.CLICK上添加一个事件侦听器,该事件侦听器的回调函数有一个方法来处理如上所示的传递FacebookShare变量的Facebook页面的打开。要打开你的浏览器另一个页面,你可以使用这个AS3类叫做URLNavigator: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); } 
      } 
     } 

我希望帮助。如果您有关于代码的问题,请告诉我。

相关问题