2010-09-09 46 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); } 
      } 
     } 

我希望幫助。如果您有關於代碼的問題,請告訴我。

相關問題