如何使用actionscript检测“共享”?

时间:2011-10-24 07:01:39

标签: facebook actionscript

我们都知道可以为脸书制作一个分享按钮,允许用户分享任何项目。但是当我们被定向到该页面时,用户有两个选择。按“取消”按钮当然会关闭窗口,或按“共享”按钮,然后将项目添加到人员墙上。

我要做的是确定是否已按下该分享按钮。看,因为当他们按下它时,我希望我的瑞士法郎找出一条消息,说“感谢分享我的项目”

虽然我可以将它们重定向到页面但我无法知道他们是否共享它。我的想法是使用enter_frame事件并尝试查看是否有任何数据通过php发送。因为那就是按下时按钮会做什么。但是我没有运气这么做。

这是迄今为止的代码。它是一个教程,重点是我的问题:

import flash.net.navigateToURL; import flash.net.URLVariables; import flash.net.URLRequest; import flash.net.URLRequestMethod; share_btn.addEventListener(MouseEvent.CLICK, shareClickHandler); function shareClickHandler(evt:MouseEvent):void {     var varsShare:URLVariables = new URLVariables();     varsShare.u = 'http://domain.com/pageN.html';     varsShare.t = 'Title Page';     var urlFacebookShare:URLRequest = new URLRequest('http://www.facebook.com/sharer.php');     urlFacebookShare.data = varsShare;     urlFacebookShare.method = URLRequestMethod.GET;     navigateToURL(urlFacebookShare, '_blank'); }

1 个答案:

答案 0 :(得分:0)

我使用静态类进行共享。 看看这个:

package shvyrev.com.utils 
{
    import flash.events.EventDispatcher;
    import flash.external.ExternalInterface;

    public class ShareUtil 
    {
        static private var url:String;
        static private var feedFunction:Function;

        static public function shareFacebookExt(appID:String, title:String, titleLink:String, caption:String, description:String, imageSource:String, redirectUrl:String = '', feedBackFunction:Function = null):void
        {
            url = 'http://www.facebook.com/dialog/feed?app_id=' + appID + '&picture=' + imageSource + '&name=' + escape(title) + '&link=' + escape(titleLink) + '&caption=' + escape(caption) + '&description=' + escape(description) + '&display=' + 'popup' + '&redirect_uri=' + redirectUrl;

            feedFunction = feedBackFunction;

            try 
            {
                if (redirectUrl !== '' && feedFunction !== null) ExternalInterface.call('confirmPost', handler_confirm);
                ExternalInterface.call("window.open", url , "win", "height=400,width=580,toolbar=no,scrollbars=no");
            }catch (err:Error)
            {
                if (feedFunction !== null) feedFunction.call(null, 'facebook share unaviable');
            }
        }

        static private function handler_confirm():void 
        {
            feedFunction.call(null, 'handler_confirm')
        }
    }
}