2009-09-08 70 views
0

請幫忙嗎?看起來我的回調函數沒有被調用...回來。我使用的是jQuery和Flash 8.爲了訪問Flash對象,我使用了jquery swfobject插件c.f. (http://jquery.thewikies.com/swfobject/examples)。如果您認爲我沒有正確訪問SWF,請推薦我如何做到這一點的代碼。謝謝!我的ActionScript的ExternalInterface回調函數沒有經過。我該如何調試它?

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 
} 

回答

0

我的代碼是工作。我只是簡單地上傳了錯誤的SWF,而沒有發佈到正確的位置。我通過添加如下調試代碼,上傳,並指出,雖然它出現在本地調試控制檯,它並沒有出現在Flash示蹤

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

也發現了它,我對Flash改變安全。在HTML中,我將「AllowScriptAccess」設置爲「always」,並在SWF中放入:

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

感謝您的期待!希望你有未來的運氣。