2007/02/02 | Flash全屏功能测试
类别(flash As) | 评论(0) | 阅读(219) | 发表于 10:49

  

原文地址:http://www.klstudio.com/post/104.html

在线测试页面:http://www.klstudio.com/demo/as/fullscreen/fullscreen.html
  相关资料文件:http://www.klstudio.com/demo/as/fullscreen/fullscreen.rar

- <script language="JavaScript">
     var orginFlash = {init:false,isFullScreen:false,position:"",top:"",left:"",width:"",height:""};
-    function writeFlash(){
       var so = new SWFObject("fullscreen.swf", "fplayer", "100%", "100%", 8, "#FFFFFF");
       so.addParam("quality", "high");
       so.addParam("swLiveConnect", "true");
       so.addParam("menu", "false");
       so.addParam("allowScriptAccess", "sameDomain");
       so.addParam("allowFullScreen", "true");
       so.write("flashcontent");
     }
-     function getScreenSize(){
        var w = 0;
        var h = 0;
-       if( typeof( window.innerWidth ) == 'number' ) {
          w = window.innerWidth;
          h = window.innerHeight;
       } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
         w = document.documentElement.clientWidth;
         h = document.documentElement.clientHeight;
       } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
         w = document.body.clientWidth;
         h = document.body.clientHeight;
       }
       return {width:w,height:h};
     }
-     function fullScreen(){
-       if(!orginFlash.init){
          orginFlash.position = document.getElementById("flashcontent").style.position;
          orginFlash.top = document.getElementById("flashcontent").style.top;
          orginFlash.left = document.getElementById("flashcontent").style.left;
          orginFlash.width = document.getElementById("flashcontent").style.width;
          orginFlash.height = document.getElementById("flashcontent").style.height;
       }
       orginFlash.init = true;
       orginFlash.isFullScreen = true;
       var screenSize = getScreenSize();
-      try{
         document.getElementById("flashcontent").style.position = "absolute";
         document.getElementById("flashcontent").style.top = "0px";
         document.getElementById("flashcontent").style.left = "0px";
         document.getElementById("flashcontent").style.width = screenSize.width +"px";
         document.getElementById("flashcontent").style.height = screenSize.height +"px";
         document.body.style.overflow="hidden";
         window.scrollTo(0,0);
       }catch(e){
       }
     }
-    function normal(){
-      if(orginFlash.init){
         orginFlash.isFullScreen = false;
-        try{
           document.getElementById("flashcontent").style.position = orginFlash.position;
           document.getElementById("flashcontent").style.top = orginFlash.top;
           document.getElementById("flashcontent").style.left = orginFlash.left;
           document.getElementById("flashcontent").style.width = orginFlash.width;
           document.getElementById("flashcontent").style.height = orginFlash.height;
           document.body.style.overflow="auto";
         }catch(e){
         }
      }
     }
-    function reSize(){
-       if(orginFlash.isFullScreen){
           fullScreen();
        }
      }
     window.onresize = reSize;
     writeFlash();
  </script>

2、flash全屏功能在IE6以上,flash player 7.0以上 浏览器环境中测试可以运行!
3、flash全屏功能通过两种方式实现,flash player版本号在9.0.18.60以上 是通过flash 9内部代码实现的,而低于这个版本的则是通过js + div来实现的!
4、通过flash 9新功能来实现全屏技术要注意以下几点:
      a、flash player版本必须是 9.0.18.60或更高版本;
      b、调用全屏功能代码需通过触发事件才可以运行的,如onPress,onRelease事件;
      c、在插入html 代码时需设置<param name="allowFullScreen" value="true" />;
      d、经多次研究发现,如 html代码设置成<param name="wmode" value="opaque" />或<param name="wmode" value="transparent" />时,则全屏功能无效!也就是说只有flash窗口模块设置为window时,全屏功能才有效(这个算是我的独家发现吧)!

ps:danger的方法

http://www.dengjie.com/weblog/comments.asp?post_id=1183

2,AS2 中一句话来调用全屏:
Stage["displayState"] = "fullScreen";
但必须使用事件处理器来调用才生效.就是:onPress,onClick...之类的.
3,最后就是HTML中必须加入 <param name="allowFullScreen" value="true" />这段话

0

评论Comments

日志分类
首页[193]
flash As[107]
有的没的[59]
数码照片[4]
自由世界[19]
blender[4]