2009-06-08 73 views
12

我被要求做Facebook應用程序。在我承諾任何事情之前,我想知道一款遊戲能夠輕鬆地轉移到Facebook嗎? (我完全可以在瀏覽器中使用JavaScript製作遊戲。)製作Facebook應用程序時,JavaScript受限制的方式是什麼?

Facebook以某種方式過濾JavaScript嗎?我可以使用jQuery或其他JS庫嗎?我可以通過動態更改DOM來執行動畫嗎?最好是使用iFrame還是使用FBML?

我已經做了一些周圍的Facebook開發網站戳。但我希望聽到某人完成了學習曲線。

回答

9

Facebook上下文中的JavaScript有所不同,因爲它會在通過Facebook時被重寫。要了解差異(其中有很多差異),請從FBJS Documentation開始。 getting started指南是一個很好的入門書。

將成爲您的聖經的網站是wiki.developers.facebook.com,它在FB平臺方面是典型的。此外,當我們都知道和(愛?討厭?)時,Facebook平臺是一個移動的目標,所以通過Facebook上的開發人員組跟上事情是很有用的。我也喜歡博客Inside Facebook

誰允許開發人員 其域 力開發中嵌入JavaScript才能使用的iframe 大多數提供商沙盤他們的代碼。 Facebook採取了 這個問題的另一種方法。 您給我們提供的JavaScript獲得 解析,並且任何標識符(函數 和變量名稱)都會以您的應用程序標識爲前綴 。例如,以下的 代碼塊:

function foo(bar) { var obj = {property: bar}; return obj.property; 

}

變爲:

function a12345_foo(a12345_bar) { var a12345_obj = {property: a12345_bar}; return a12345_obj.property; } 

這產生了對在Facebook運行每 應用程序的虛擬範圍。 從那裏,我們通過一組 JavaScript對象,允許您在Facebook上修改您的內容,從而暴露某些 功能。我們的 對象模仿 JavaScript的功能儘可能接近 ,但可能需要一些 已經習慣了 已經熟練使用JavaScript的人。

許多隻是普通JavaScript元素的項目必須在FBJS中用特殊的方法調用來完成。例如,當在JS中引用表單域的值時,您使用.value,而在FBJS中,您需要執行.getValue()。正是這些差異阻止了將JS從其他地方剪切和粘貼到Facebook。

這是一個基本的底漆。這應該讓你開始。最適合你!

+0

有沒有辦法改變絕對div的頂部和左側?我無法在鏈接中找到它。 – Nosredna 2009-06-09 03:29:38

1

不是太難我會說,既然你已經有能力編程一個遊戲,它應該沒問題,你編寫一個Facebook應用程序,以及將遊戲移植到Facebook。

據我所知,與FBML你的JavaScript將形同虛設(是你的JavaScript將被過濾)

,所以你將不得不使用iframe中,你的JavaScript將保持功能(只要你的JavaScript不會觸及fbml標籤)

Facebook api文檔非常糟糕。

2

簡單的解決方案是將你的整個遊戲包裝在一個iFrame中。 FB本身可以濾除大量的JavaScript調用 - 基本上,涉及窗口或文檔對象的任何內容都可能不起作用。

相關問題