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;
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>
<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;
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>