为什么JQuery不能正确淡化flash对象?

ora*_*dov 0 flash jquery fade

我试图淡出Flash嵌入对象并淡入常规Html.

由于某种原因,淡出方法的回调在淡出完成之前被多次触发.结果是Html在回调函数中被多次附加,并且它会闪烁一个额外的时间.

当我尝试淡化常规Html时,这不会发生.

fadeout功能不适用于flash吗?

HTML:

<a id="HideFlash" href="#">Hide Flash</a>
<div id="FlashContainer" >
    <object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0"
        width="100" height="50" id="TEST" align="middle">
        <param name="allowScriptAccess" value="sameDomain" />
        <param name="allowFullScreen" value="false" />
        <param name="movie" value="demo_banner.swf" />
        <param name="quality" value="high" />
        <param name="bgcolor" value="#ffffff" />
        <param name="wmode" value="transparent">
        <embed src="demo_banner.swf" quality="high" wmode="transparent" bgcolor="#ffffff" width="100" height="50" name="TEST"
            align="middle" allowscriptaccess="sameDomain" allowfullscreen="false" type="application/x-shockwave-flash"
            pluginspage="http://www.macromedia.com/go/getflashplayer" />
    </object>
</div>
<div id="RegularContent" >
<h1>Before Fade</h1>
</div>
Run Code Online (Sandbox Code Playgroud)

JQuery的:

 $('#HideFlash').click(function() {
        $('#FlashContainer *').fadeOut('slow', function() {

            $('#FlashContainer').append("<p style='display: none;'>This is in the flash container</p>");
            $('#FlashContainer p').fadeIn('slow');
        });

        $('#RegularContent *').fadeOut('slow', function() {

        $('#RegularContent').append("<p style='display: none;'>This is in the regular content after fade</p>");
        $('#RegularContent p').fadeIn('slow');
        });
    });
Run Code Online (Sandbox Code Playgroud)

mon*_*ist 8

我认为这是因为jQuery无法操纵第三方多媒体对象的不透明度,即使它嵌入到标准HTML标记中.

你最好的选择可能就是在它上面放置一个尺寸相同的隐形DIV然后只是淡入/淡出(但这只是纯粹的推测).