「現代」更新方式嵌入Flash對象,據Adobe稱,:閃光:ExternalInterface的工作與嵌入標記,但不與對象標記
<object id="theFlash" name="theFlash" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"
width="400" height="225" align="middle">
<param name="movie" value="theflashfile.swf" />
<param name="allowScriptAccess" value="always" />
<!--[if !IE]>-->
<object type="application/x-shockwave-flash"
data="getStreamFrame.swf" width="400" height="225">
<param name="allowScriptAccess" value="always" />
<!--<![endif]-->
<a href="http://www.adobe.com/go/getflash">
<img src="http://www.adobe.com/images/shared/download_buttons/get_flash_player.gif" alt="Get Adobe Flash player" />
</a>
<!--[if !IE]>-->
</object>
<!--<![endif]-->
</object>
當試圖調用AS3功能的SWF,從使用Javascript:
var flashObj = document.getElementById('theFlash');
flashObj.someASFunction();
(和在AS側:)
import flash.external.*;
function someASFunction() {
//show some text
}
ExternalInterface.addCallback("someASFunction", someASFunction);
這沒有在Firefox和Chrome中工作。 閃光燈工作並加載。 flashObj確實獲得了對象的引用,但是某些ASFunction是未定義的並且未被調用。
如果我有一個嵌入標記替換對象標籤:
<embed id="theFlash" name="theFlash" height="225" width="400" align="middle"
type="application/x-shockwave-flash" allowscriptaccess="always"
src="theflashfile.swf" />
然後在Firefox和Chrome 工作(AS功能被調用,並正常工作) - (它並不在IE瀏覽器雖然)。
它怎麼不能用對象標籤?
使用嵌入標籤而不是對象標籤有多「安全」?它沒有過時嗎?
請注意,它絕對不是一個計時問題 - 如果我從一個onclick函數調用JS的AS函數 - 那麼結果是一樣的。
不用擔心靜態嵌入,請使用swfobject! – grapefrukt
嵌入標籤包含在HTML5規範中。 http://html5doctor.com/element-index/#e –
我遇到了同樣的問題。當使用swfobject 2.2時,Chrome獲取對象標記,然後我的AS功能不起作用。如果我使用swfobject 1.5,Chrome會獲取嵌入標記,並且我的AS功能可以工作。我想使用最新的swfobject,但我也需要使用我的AS功能。這裏有任何更新? – Nick