2008-09-10 64 views
8

通常,Flash和Flex應用程序通過使用objectembed標記或更常用JavaScript的組合嵌入在HTML中。但是,如果直接鏈接到SWF文件,它將在瀏覽器窗口中打開,並且不會查看地址欄中的內容,但無法判斷它是否未嵌入HTML,其大小設置爲100%寬度和高度。直接鏈接到SWF,有什麼缺點?

考慮到嵌入充滿瀏覽器窗口的Flash或Flex應用程序所需的HTML,CSS和JavaScript的開銷,直接鏈接到SWF文件的缺點是什麼?什麼是好處?

我可以想到一個好處和三個缺點:你不需要100多行HTML,JavaScript和CSS,否則它們是必需的,但你沒有插件檢測,沒有版本檢查,你失去了你最好的SEO選項(漸進增強)。

更新不要掛在100多行上,我只是表示嵌入SWF所需的代碼量非常多(我的意思是包括像SWFObject這樣的庫),它只是用於顯示SWF,這可以通過直接鏈接到一行來完成。

回答

7

上升空間直接鏈接到SWF文件:

  • 更快地訪問
  • 你知道這是你點擊鏈接
  • 跳過HTML & js文件上甚至之前(你不會的Flash影片使用CSS來顯示反正100%flash動畫)

缺點:

  • 你對電影的默認值沒有什麼控制。
  • 您不能使用自定義背景顏色,透明度等。
  • 不能使用Flash變量將數據從HTML發送到電影
  • 無法從電影使用fscommand頁面
  • 電影比例是絕不相同的用戶窗口的長寬比
  • 你無法彌補瀏覽器的不兼容性(下一個新的瀏覽器出來,你有麻煩)
  • 沒有搜索引擎優化
  • 沒有頁面標題,如果你想讓人們正確書籤不好。
  • 無插件信息,下載鏈接等
  • 如果您的SWF連接到外部數據源,則可能會出現跨域問題。
  • 重命名SWF文件也會重命名該鏈接。版本控制不好。

總之,對於一個複雜的應用程序 - 總是使用HTML。對於簡單的動畫電影,你可以選擇任何一種方式。

0

爲什麼你需要100多行代碼?使用諸如swfobject之類的東西可以減少相當一部分(並且通常你不想手動執行插件檢測等)。

3

你也失去了SWF的外部控制。當它嵌入到HTML中時,您可以使用JavaScript與SWF進行通信。如果SWF直接加載,那可能是不可能的。

您的100條以上的報價對我來說似乎很高。 FlashDevelop爲嵌入SWF而生成的HTML只有大約35行,包含一個swfobject.js文件。您不需要觸摸js文件,並且最多隻需要以非常小的方式調整HTML,以便按照您的要求進行操作。

3

根據我的經驗,並非所有的瀏覽器都能正確處理這個問題。我不確定爲什麼(或哪些瀏覽器),但我錯誤地發送了像這樣的鏈接給客戶,有時他們經常回來困惑。我懷疑他們的瀏覽器提示他們下載文件,而不是正確顯示。

1

我能想到的一個好處是能夠在直接鏈接到SWF的URL中指定GET參數,然後可以在Flash應用程序中使用(通過Flex中的Application.application.parameters),不知道如何在Flash中訪問它們CS3)。這當然也可以通過其他方式實現,如果你有一個HTML包裝器,但這樣做的工作量較少。

-1

Adob​​e應該爲標準嵌入而感到羞恥,這違背了常規的配置。檢查^ swfobject的(如上所述)或swfin

0

更多的優點:

  1. 重量輕的樣子,因爲你可以使用所有的工具欄,似乎積聚在那裏,甚至滾動條是擺脫頭部的不需要。當您試圖在短時間內顯示大量動作時,這會增強影響力。
  2. The biggie:你把它放在一個窗口中,你可以拖大或小,使電影變得越來越小。玩家將調整電影大小以填滿您擁有的窗口。對於每個人都想放大查找自己和朋友的合影照片,這非常棒。我已經完成了一幀Flash製作!

缺點: 與通常的彈出窗口,如果你所要求的來自同一個站點多者,並且希望不同大小的彈出窗口,瀏覽器往往會簡單地覆蓋您在window.open要求的尺寸和重新使用它。你需要關閉任何打開的彈出窗口,這樣window.open會做一個新的創建。它變得複雜了,我一直無法讓它在網站上的各個頁面上工作。任何成功的人,請張貼如何!