在div中加载Flex 3生成的动态swf

时间:2010-01-21 04:55:42

标签: jquery css flex3 flash load

我正在尝试加载动态SWF文件,该文件具有100%的宽度和高度,由我的flex 3在div中生成。使用Jquery load()函数。我试图加载的div在某个时间可见,但在此之后我的SWF从div中出来并占据整个视口区域以显示SWF。我试图为div提供固定的高度和宽度,但没有运气。我想仅在该特定div中加载该SWF文件。请有人帮我解决这个问题。

3 个答案:

答案 0 :(得分:0)

结构非常简单 $(#divID).load('sample.swf');

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

其中sample.swf动态生成并具有100%的高度和宽度。

答案 1 :(得分:0)

如果这种方法有效,我会非常惊讶。 AFAIK,flash / flex对象需要以特定方式插入DOM中(使用<embed><object>)。

一个非常好的(和免费的)javascript组件,可以完成所需的一切 flashembed

http://flowplayer.org/tools/flashembed.html

答案 2 :(得分:0)

要将生成的swf文件加载到页面中的某个div而不是占用整个页面,请按照下面提供的三个步骤操作。但首先出现这种行为的原因是生成的“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将其附加到html中的div:

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