Не могли бы некоторые гении помочь в решении этой проблемы? Это будет оцененоДинамический публикация метода обратного вызова внешнего интерфейса swfobject undefined
На самом деле я флэш-музыкальный проигрыватель загружен с помощью конфигурационного файла config.xml имени
пример Flash Player Действие сценария
**myUltimateMp3Player.loadConfig("config.xml");**
import flash.external.ExternalInterface;
stop();
// ExternalInterface receive
if (ExternalInterface.available) {
ExternalInterface.addCallback("sendTextFromHtml", null, function(val:String):Void {
myUltimateMp3Player.loadConfig(val); });
}
Я попытался встраивать flash динамически используя Swf-объект, поэтому, когда событие click обрабатывается из списка из html, соответствующий файл config.xml должен быть загружен на флеш-плеер.
Пример HTML-код:
$(document).on("click", "#Musiclist li", function() {
var c = "youtube-playlist";
$("#media-" + c).remove();
createMedia(c);
var id=this.id;
var idxml=id+".xml";
var swfPanel="media-" + c;
var flashvars = {};
var params = {};
params.swliveconnect = "true";
params.allowfullscreen = "true";
params.allowscriptaccess = "always";
var attributes = {};
attributes.id = "flashobj";
attributes.name = "flashobj";
swfobject.embedSWF("source.swf", "flashcontent", "100%", "100%", "9.0.0", "swf/expressInstall.swf", flashvars, params, attributes,callbackFn);
});
функция обратного вызова
//This function is invoked by SWFObject once the <object> has been created
var callbackFn = function (e){
//Only execute if SWFObject embed was successful
if(!e.success || !e.ref){ return false; }
swfLoadEvent(function(){
var obj=e.ref;
obj.sendTextFromHtml("config.xml");
alert("The SWF has finished loading!");
});
};
Функция держать таймер значение и ожидает SWF-файла PercentLoaded, пока он не достигнет "100"
function swfLoadEvent(fn){
//Ensure fn is a valid function
if(typeof fn !== "function"){ return false; }
//This timeout ensures we don't try to access PercentLoaded too soon
var initialTimeout = setTimeout(function(){
//Ensure Flash Player's PercentLoaded method is available and returns a value
if(typeof e.ref.PercentLoaded !== "undefined" && e.ref.PercentLoaded()){
//Set up a timer to periodically check value of PercentLoaded
var loadCheckInterval = setInterval(function(){
//Once value == 100 (fully loaded) we can do whatever we want
if(e.ref.PercentLoaded() === 100){
//Execute function
fn();
//Clear timer
clearInterval(loadCheckInterval);
}
}, 1500);
}
}, 200);}
Так что я не могу понять это то, что я делаю неправильно,
Ошибка получения была,
Uncaught ReferenceError: e is not defined
Если я не использую в swfLoadEvent таймера
ошибка получена,
Uncaught TypeError: Object # has no method 'sendTextFromHtml'