嘿,大家好,我已经建立了一个网站并正在运行,这要感谢用户在stackoverflow上提供的较早的帮助,以便用户选择深色或浅色方案。
但是在项目详细信息页面上,有些Flash视频也会根据所选的配色方案而稍有变化。
页面示例在这里:
http://centerline.net/projects/detail/?p=84
如果您开始播放视频并更改配色方案,则Flash Player将更改为正确的颜色,但是刷新后,它不会记住该更改。如何修改下面的代码,以便Flash Player读取正确的配色方案并采取措施?
有关的代码在这里(完整的JS文件在这里:http://www.centerline.net/lib/js/site-unmin.js):
//Switches color of Flash Video player on detail pages
function updateColor(color) {
//alert("called");
var vidPlayers = document.getElementsByName("StageVideoPlayer");
for(var i=0;i<vidPlayers.length;i++) {
var player = vidPlayers[i];
player.changePlayerColor(color);
}
}
//Swaps out style sheets for different designs. Sets cookie to remember user's design preference.
if($.cookie("css")) {
$("link").attr("href",$.cookie("css"));
}else if($.cookie("cssSession")) {
$("link").attr("href",$.cookie("cssSession"));
}else{
var rand = Math.floor(Math.random()*2)
if (rand > 0) {
$("link").attr("href","/lib/css/common-dark.css");
$.cookie("cssSessionColor","dark", {expires:null, path: '/'});
$.cookie("cssSession","/lib/css/common-dark.css", {expires:null, path: '/'});
}else{
$("link").attr("href","/lib/css/common.css");
$.cookie("cssSessionColor","light", {expires:null, path: '/'});
$.cookie("cssSession","/lib/css/common.css", {expires:null, path: '/'});
};
}
window.onLoad = function(){
updateColor($.cookie("cssSessionColor"));
}
最佳答案
我的猜测是window.onLoad事件发生在视频播放器准备好接收ExternalInterface调用或注册回调之前。我建议侦听播放器以加载到Flash中,检查ExternalInterface是否可用,然后调用返回cookie信息的JS函数。