嘿,大家好,我已经建立了一个网站并正在运行,这要感谢用户在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函数。

09-10 13:26