#javascript #flash #dynamic #swfobject #externalinterface
#javascript #flash #динамический #swfobject #externalinterface
Вопрос:
Я использую swfObject library
для динамического встраивания MP3-плеера, который я создал во Flash CS5. В .fla
файле я объявил список методов, которые могут быть вызваны через Javascript (используя flash.external.ExternalInterface
класс flash).
Это не проблема, поскольку все эти функции работают должным образом при вызове из консоли Google Chrome. Однако SWFObject предоставляет способ вызова javascript API, только если он .swf
был включен статически swfobject.registerObject()
(т. Е. с помощью .swf
), но я не могу найти способ достичь той же цели, когда он включен динамически swfobject.embedSWF()
(т. Е. с помощью в).
Заранее спасибо за вашу помощь и дополнения 🙂
Комментарии:
1. разве хороший document.getElementById не делает свое дело?
2. я пробовал это, но это работает только с консоли, а не тогда, когда
document.getElementById()
код находится внутри моих тегов <script>3. Вы должны написать тег script после элемента, который вы хотите получить на своей странице.
Ответ №1:
При использовании swfobject.embedSWF
вы можете указать идентификатор swf-объекта в attributes
параметрах :
swfobject.embedSWF(swfUrl, идентификатор, ширина, высота, версия, expressInstallSwfurl, flashvars, параметры, атрибуты, обратный вызов FN)
Пример :
swfobject.embedSWF(
"YourFlash.swf", "WhereToPlaceThis", "0px", "0px", "10.0.0",
"expressInstall.swf", {}, {}, { id : "IdOfTheSWF" },
function () {
var SWF = document.getElementById("IdOfTheSWF"); // That's your SWF //
SWF.yourFlashFunction(); // And you can invoke function //
}
);