„nowoczesnego” aktualizowana sposób osadzić obiektu Flash, zgodnie z Adobe:błysku: ExternalInterface współpracuje ze znacznika embed ale nie ze znacznika object
<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>
Podczas próby wywołania funkcji AS3 w SWF, z javascript:
var flashObj = document.getElementById('theFlash');
flashObj.someASFunction();
(i na boku, jak :)
import flash.external.*;
function someASFunction() {
//show some text
}
ExternalInterface.addCallback("someASFunction", someASFunction);
Ten nie działa w przeglądarkach Firefox i Chrome. Lampa błyskowa działa i ładuje się. flashObj otrzymuje odwołanie do obiektu, ale niektóre funkcje są niezdefiniowane i nie są wywoływane.
Gdybym zastąpić znacznik obiektu ze znacznika embed:
<embed id="theFlash" name="theFlash" height="225" width="400" align="middle"
type="application/x-shockwave-flash" allowscriptaccess="always"
src="theflashfile.swf" />
Potem działa na Firefox i Chrome (funkcja AS nazywa się i działa poprawnie) - (nie działa w IE chociaż).
Dlaczego to nie działa z tagiem obiektu?
Jak "bezpieczne" jest używanie tagu embed zamiast tagu object? Czy to nie jest przestarzałe?
Należy zauważyć, że nie jest to z pewnością kwestia ograniczenia czasu - jeśli wywołasz funkcję AS z JS z funkcji onclick - wyniki są takie same.
nie przejmuj się statycznym osadzaniem, używaj swfobject! – grapefrukt
Znacznik embed jest zawarty w specyfikacji HTML5. http://html5doctor.com/element-index/#e –
Używam tego samego problemu.Podczas używania swfobject 2.2, Chrome pobiera znacznik object, a następnie moja funkcja AS nie działa. Jeśli używam swfobject 1.5, Chrome pobiera tag embed, a moja funkcja AS działa. Chciałbym użyć najnowszego swfobject, ale potrzebuję również mojej funkcji AS do pracy. Jakieś aktualizacje tutaj? – Nick