2010-01-21 35 views
1

我想加載動態SWF文件,它具有100%的寬度和高度,由我的flex 3在div中生成。使用Jquery的load()函數。我試圖加載的div在某些時候可見,但在此之後,我的SWF出現在div中,並且需要整個視口區域才能顯示SWF。我試圖給div提供固定的高度和寬度,但沒有運氣。我只想在該特定的div中加載該SWF文件。任何人都可以幫我解決這個問題。加載動態SWF生成的Flex 3在一個div

+0

您正在使用什麼樣的代碼嵌入SWF?像SWFObject這樣的庫?定期的'object' /'embed' HTML代碼?請在問題中提供您的代碼。 – 2010-01-21 05:03:13

+0

結構非常簡單 $(#divID).load('sample.swf');

 
其中sample.swf是動態生成的,並具有100%的高度和寬度。 – Shruti 2010-01-21 07:20:00

+0

你可以像使用jQuery一樣將SWF插入div中嗎? jQuery會處理創建所有這些對象和嵌入標籤嗎?檢查jQuery文檔以查看此加載方法是否接受寬度/高度參數,如果是,請將它們設置爲顯式值(400x400)。順便說一句,你可以編輯問題,並添加其他信息本身,而不是將其添加爲「答案」 – Amarghosh 2010-01-21 08:07:47

回答

0

Struture很簡單

$(#DIVID).load( 'sample.swf');

> <div id="divID" 
> style="height:400px;height:400px;"> 
> &nbsp; </div> 

其中sample.swf是動態生成的,並具有100%的高度和寬度。

+2

請將此添加到問題並刪除此「答案」 – Amarghosh 2010-01-21 08:10:02

0

我會很驚訝,如果這一切工作。 AFAIK,需要以特定方式(使用<embed><object>)將Flash/Flex對象插入到DOM中。

一個很漂亮的(而且免費)確實需要JavaScript組件,一切都是flashembed

​​

0

要生成的SWF文件加載到你的頁面一定格,而不是佔據整個頁面,按照下面提供的三個步驟。但首先這種行爲的原因是生成的「AC_OETags.js」使用「document.write()」,這意味着直接將內容打印到頁面。在這個解決方案中,我們將改變這種行爲(簡單地通過不使用document.write),而是使用函數返回和一個JQuery調用。

  1. 在AC_OETags.js改變功能AC_Generateobj()如下:

    [Last line of code] : replace document.write(str); with return str; 
    
  2. 在AC_OETags.js改變功能AC_FL_RunContent()如下:

    [Last line of code] : replace AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs); with return AC_Generateobj(ret.objAttrs, ret.params, ret.embedAttrs); 
    
  3. 所以現在這兩個函數都會返回結果而不是寫入頁面。最後一步是請在AC_FL_RunContent調用的返回分配給一個變量,並使用JQuery其追加到div在HTML:

    var mediaContent = AC_FL_RunContent(... flash required parameters...); 
    $('#YOUR_DIV_ID').replaceWith(mediaContent);