代码之家  ›  专栏  ›  技术社区  ›  daihovey

使用swfobject&swffit flash网站显示大量HTML可选内容

  •  1
  • daihovey  · 技术社区  · 16 年前

    我有一个完整的flash网站,它使用swfobject将它嵌入100%的高度和宽度。我正在使用swffit强制为包含大量内容的页面设置浏览器滚动条。这一切都很好,而且效果很好。我也有HTML格式的内容,作为替代内容,这也可以使flash swfobt工作,我需要在css中添加overflow=hidden,例如:

    html{
    height: 100%;
    overflow:hidden; 
    }
    #content{
    height: 100%;
    }
    

    然后,当显示可选内容时,将停止滚动条的显示。 有人知道怎么解决这个问题吗?

    2 回复  |  直到 16 年前
        1
  •  2
  •   Pekka    16 年前

    我不知道斯威夫特,但你为什么需要 overflow: hidden 首先?没有它就不能工作吗?

    唯一想到的解决方法是定义两个类,一个有,一个没有 溢出:隐藏 ,并更改 html 通过触发一些javascript,在flash中以编程方式从元素。

        2
  •  1
  •   pipwerks    16 年前

    如果需要根据swfobject嵌入的成功更改页面的css或内容,请使用swfobject 2.2中的回调函数功能。

    对于动态发布,如下所示:

    var flashvars = {};
    var params = {};
    var attributes = {};
    var embedHandler = function (e){
    };
    
    swfobject.embedSWF("mymovie.swf", "targetID", "550", "400", "9.0.0", "expressInstall.swf", flashvars, params, attributes, embedHandler);
    

    在您的情况下,如果需要删除溢出:隐藏在html元素中,可以这样做:

    var flashvars = {};
    var params = {};
    var attributes = {};
    var embedHandler = function (e){
       //If embed fails
       if(!e.success){
          document.getElementsByTagName("html")[0].style.overflow = "auto";
       }
    };
    
    swfobject.embedSWF("mymovie.swf", "targetID", "550", "400", "9.0.0", "expressInstall.swf", flashvars, params, attributes, embedHandler);
    

    此回调函数功能仅在swfobject 2.2中可用。