Вопрос к специалистам по Flash от новичка: Flash-объект на веб-странице - PullRequest
1 голос
/ 15 января 2010

Вот мое объяснение вопроса:

Из JavaScript вам нужно получить ссылку на объект Flash Player. В браузере работают две основные версии Flash Player: ActiveX и версия плагина. Версия ActiveX изначально работает в Internet Explorer, а версия плагина используется остальными браузерами.

Плеер ActiveX управляется тегом object на странице HTML, и вы можете получить ссылку на JavaScript с помощью окна. objectId, где objectId - это значение атрибута id тега object . Например, если атрибут id тега object является примером, тогда ссылка на проигрыватель ActiveX будет window.example.

Плагин-проигрыватель управляется тегом embed на HTML-странице, и вы можете получить ссылку на JavaScript с помощью window.document. embedName, где embedName - это значение атрибута name тега embed . Например, если в качестве примера указан атрибут name тега embed , то ссылкой на подключаемый проигрыватель будет окно.document.example.

А вот и сам вопрос:

Почему объект Flash Player существует как свойство window , когда внедряется с помощью тега object , тогда как при внедрении с помощью тега embed он существует в свойстве window.document ? И какой самый современный способ получения объекта Flash Player из веб-страницы?

Ответы [ 3 ]

0 голосов
/ 14 апреля 2011

Сегодня у меня появились забавные вещи. Я использую обычный способ встроить флеш в мой блог .

<object id="flashObject" width="290" height="100" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000">
    <param name="movie" value="javascriptcallflash.swf" />
    <param name="quality" value="high" />
    <param name="allowScriptAccess" value="always" />
    <embed name="flashObject" width="100%" height="100%" wmode="transparent" allowScriptAccess="always" width="290" height="100" type="application/x-shockwave-flash" src="javascriptcallflash.swf"/>
</object>

И я также использую обычный способ получить ссылку на вспышку:

<script type="text/javascript">
    function getFlashMovie(movieName) {   
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        return (isIE) ? window[movieName] : document[movieName];  
    }
    function CallFlashFun() {
        var textarea = document.getElementById("jsMsg")
        var flashObj = getFlashMovie("flashObject");
        flashObj.asFunction(textarea.value);
    }
</script>

Проблема в том, что после публикации сообщения. Не работает Поэтому я должен попытаться заменить window[movieName] на window.document[movieName]. Тогда это работает. Это очень странно.

Чем отличается окно [movieName], документ [movieName] и window.document [movieName]?

0 голосов
/ 30 июня 2012

swfobject.js по-прежнему делает это наиболее надежно. Настолько, что он был принят Adobe в качестве сценария встраивания по умолчанию.

0 голосов
/ 15 января 2010

Ответ встроен в сам вопрос. IE использует теги object и, следовательно, SWF является объектом window, если он встроен в теги object. В остальном мире используются теги embed, поэтому для них SWF является свойством window.document.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...