我正在尝试复制Youtube上“在Facebook上分享”按钮的行为。基本上,在Flex应用程序中我会有一个按钮,当我点击它时,我想要一个弹出窗口,让我可以在墙上发布一些东西。
虽然可以调用javascript来打开弹出窗口,但我希望能够设置图片和我发布的文本。
您知道如何将图片或文字设置为共享窗口的参数吗?
谢谢!
答案 0 :(得分:1)
这很简单。 Youtube使用Facebook API弹出一个新窗口(Info on Facebook sharer API)。
要在flex中执行此操作,
ExternalInterface.call("fbLink", "www.yahoo.com");
在您的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}) }
现在,当用户点击按钮时,他们将与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); }
}
}
我希望有所帮助。如果您对代码有疑问,请告诉我。