Функция обратного вызова ExternalInterface моего ActionScript не выполняется. Как я могу отладить это?

Помогите, пожалуйста? Похоже, моя функция обратного вызова не вызывается... обратно. Я использую jQuery и Flash 8. Чтобы получить доступ к объекту Flash, я использую подключаемый модуль jquery swfobject, c.f. (http://jquery.thewikies.com/swfobject/examples). Если вы считаете, что я неправильно обращаюсь к SWF, пожалуйста, порекомендуйте код, как я могу это сделать. Спасибо!

Код JavaScript:

$("#songplayer").flash("callCueSong(" + songid + ")");

Флэш-код:

import flash.external.*;
ExternalInterface.addCallback('callCueSong', null, cueSong);


stop();
pause = false;
pp_btn.hitArea = pause_hit_area;
love_btn.hitArea = love_hit_area;
_root.display_txt.backgroundColor = 0xffffff;

function cueSong(songid) {
    trace('Cueing track ' + songid);
    _root.sid = songid;
    _root.sound_mc.songStarter('sent', false);

}

MovieClip.prototype.songStarter = function(next_direction, feedback) {
      // code goes here
}

person Zack Burt    schedule 08.09.2009    source источник


Ответы (1)


Мой код работал. Я просто загружал неправильный SWF и не публиковал в правильном месте. Я обнаружил это, поместив следующий код отладки, загрузив его и отметив, что, хотя он появился в локальной консоли отладки, он не появился в Flash Tracer.

trace("Availability: " + ExternalInterface.available);

Кроме того, я изменил безопасность на Flash. В HTML я поставил «AllowScriptAccess» как «всегда», а в SWF я поставил:

System.security.allowDomain('http://www.mydomain.com', 'http://mydomain.com', 'mydomain.com', 'amazonaws.com');

Спасибо, что посмотрели! Надеюсь, вам повезет в будущем.

person Zack Burt    schedule 09.09.2009