flash: ExternalInterface работает с тегом embed, но не с тегом объекта

" Современный "обновленный способ встраивания объекта Flash, согласно Adobe:

        <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 получает ссылку на объект, но someASFunction не определен и не вызывается.

Если я заменю тег объекта на встроенный тег:

   <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 она не работает ).

Почему это не работает с тегом объекта?
Насколько "безопасно" использовать тег embed вместо тега объекта? Разве это не устарело?

Обратите внимание, что это определенно не проблема времени - если я вызываю функцию AS из JS из функции onclick - тогда результаты будут такими же.

5
задан Yuval A. 19 September 2011 в 16:45
поделиться