Flash全屏功能详解

通过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时,全屏功能才有效.

 

<div id="flashcontent"></div>
<script language="javascript" src="js/swfobject.js"></script>
<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;
      
iftypeof( 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>

 

posted @ 2009-11-16 14:34  木瓜网络  阅读(561)  评论(0编辑  收藏  举报