制片人后备

时间:2011-01-26 09:05:53

标签: jquery flash fallback

我想知道是否有一种方法可以为Piecemaker添加后备功能,因此当在移动设备上查看网站时,该页面会回退到使用基于javascript的滑块。

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

所以我认为通过遵循crayon1的思路并改变它嵌入flash的方式我可以找到解决方法,以便可以包含后备子html。这需要更改两个文件:

JavaScriptFlashGateway.js&

piecemaker-main.php (假设我们正在谈论WordPress插件)

在JavaScriptFlashGateway.js中,找到以下代码:

function FlashTag(src, width, height)
{
    this.src       = src;
    this.width     = width;
    this.height    = height;
    this.version   = '9,0,0';
    this.id        = null;
    this.salign = "tl";
    this.scale = "noscale";
    this.allowScriptAccess = "always";
    this.allowfullscreen = "true";
    this.bgcolor   = 'ffffff';
    this.flashVars = null;
    this.wmode     = null;
}

并改为:

function FlashTag(src, width, height, fallback)
{
    this.src       = src;
    this.width     = width;
    this.height    = height;
    this.fallback  = fallback;
    this.version   = '9,0,0';
    this.id        = null;
    this.salign = "tl";
    this.scale = "noscale";
    this.allowScriptAccess = "always";
    this.allowfullscreen = "true";
    this.bgcolor   = 'ffffff';
    this.flashVars = null;
    this.wmode     = null;
}

然后进一步找到这一行:“FlashTag.prototype.toString = function()”

用这个替换整个函数:

FlashTag.prototype.toString = function()
{
    var ie = (navigator.appName.indexOf ("Microsoft") != -1) ? 1 : 0;
    var flashTag = new String();
    flashTag += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" ';
    if (this.id != null)
    {
        flashTag += 'id="'+this.id+'" ';
    }
    flashTag += 'codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version='+this.version+'" ';
    flashTag += 'width="'+this.width+'" ';
    flashTag += 'height="'+this.height+'">';
    flashTag += '<param name="movie" value="'+this.src+'"/>';
    flashTag += '<param name="quality" value="high"/>';
    flashTag += '<param name="bgcolor" value="#'+this.bgcolor+'"/>';
    flashTag += '<param name="scale" value="noscale"/>';
    flashTag += '<param name="allowScriptAccess" value="always"/>';
    flashTag += '<param name="salign" value="tl"/>';
    flashTag += '<param name="allowfullscreen" value="true"/>';
    flashTag += '<param name="wmode" value="transparent"/>';
    if (this.flashVars != null)
    {
        flashTag += '<param name="flashvars" value="'+this.flashVars+'"/>';
    }
    if(!ie) {
        flashTag += '<object type="application/x-shockwave-flash" ';
        flashTag += 'data="'+this.src+'" ';
        flashTag += 'width="'+this.width+'" ';
        flashTag += 'height="'+this.height+'">';
        flashTag += '<param name="movie" value="'+this.src+'"/>';
        flashTag += '<param name="quality" value="high"/>';
        flashTag += '<param name="bgcolor" value="#'+this.bgcolor+'"/>';
        flashTag += '<param name="scale" value="noscale"/>';
        flashTag += '<param name="allowScriptAccess" value="always"/>';
        flashTag += '<param name="salign" value="tl"/>';
        flashTag += '<param name="allowfullscreen" value="true"/>';
        flashTag += '<param name="wmode" value="transparent"/>';
        if (this.flashVars != null)
        {
            flashTag += '<param name="flashvars" value="'+this.flashVars+'"/>';
        }
    }
    flashTag += this.fallback;
    if(!ie) {
        flashTag += '</object>';
    }
    flashTag += '</object>';
    return flashTag;
}

然后在piecemaker-main.php中找到这一行:“var tag = new FlashTag('{this this-&gt; piecemakerSWF}',{$ att ['width']} + 50,{$ att ['身高']} + 100,'9,0,0');“

用你需要的任何后备html替换'9,0,0'。

然后你就定了!希望这会有所帮助:)

答案 1 :(得分:0)

你能搞清楚吗?我不认为Piecemaker默认有这个选项,我没有看到用javascript做这个的方法100%模仿Piecemaker的Flash效果(还)。

可能有一种更好的方法可以做到这一点,但首先想到的是使用移动浏览器检测代码(有几种可用...不确定您喜欢哪种编码语言,但只需快速做一下谷歌搜索,你可以找到不同的选项)。然后,您可以使用Piecemaker作为默认显示页面版本,或者如果访问者使用移动浏览器,则显示带有您选择的javascript / jQuery滑块的版本。

编辑看起来这是一个很好的选择,可以为旧浏览器提供一些后备:http://tympanus.net/Development/Slicebox/index4.html

希望有所帮助!