[翻译]Flash在网页中实现全屏
[原文地址]点击查看原文
[例子]
Flash Player 9.0.28 是第一个真正支持全屏播放Flash影片的播放器. 但不幸的是这个特色并不被Flash开发工具支持,一直到Flash9才支持, 不过稍微修改下Flash8的安装,你现在就可以使用这一全屏特色.
在查看本文章中的例子之前,请确保你的FlashPlayer版本至少是9.0.28.之前的9,0,16,0和9,0,20,0是不支持这个效果的。你需要把播放器升级到至少9,0,28,0。
技术的关键在于使用Stage对象的新属性:”displayState”,此属性接受两种输入:
1、’fullScreen’: 设置成全屏
2、’normal’:默认设置
在此之前,我们需要修改下Flash8的安装后的文件。打开下面的文件
- \Documents and Settings\用户名\Local Settings\Application Data\Macromedia\Flash 8\语言\Configuration\Classes\FP8\Stage.as
将它的内容改成如下内容
- //****************************************************************************
- // ActionScript Standard Library
- // Stage object
- //****************************************************************************
- intrinsic class Stage
- {
- // for fullscreen
- static var displayState:String;
- // end for fullscreen
- static var align:String;
- static var height:Number;
- static var scaleMode:String;
- static var showMenu:Boolean;
- static var width:Number;
- static function addListener(listener:Object):Void;
- static function removeListener(listener:Object):Boolean;
- }
其实只是添加了下面一行内容
- static var displayState:String;
现在我们就可以在Flash影片中设置displayState属性了。处于安全方面的考虑,只有与用户交互时Flash影片才能设置displayState为全屏模式,也就是说我们不能把影片设置成默认全屏的。 你需要添加一个按钮来接收用户的指令来切换全屏模式。我们从组件面板中拖出一个Button组件来,并在帧上添加如下代码
- var clickObj:Object = new Object ();
- clickObj.click = function (evtObj:Object)
- {
- if (Stage.displayState == "fullScreen")
- {
- evtObj.target.label = "点击全屏";
- Stage.displayState = "normal";
- }
- else
- {
- evtObj.target.label = "退出全屏";
- Stage.displayState = "fullScreen";
- }
- };
- full_btn.addEventListener("click",clickObj);
如果你想侦听全屏模式已经被设置或者退出了,你可以使用一个新的事件侦听函数,onFullScreen:
- EventListener = new Object;
- EventListener.onFullScreen = function( bFull:Boolean ){
- // change to fullscreen mode has been detected
- if(bFull){
- v_mc.vtxt = "You are in Full Screen Mode";
- }
- else{
- v_mc.vtxt = "Everything is back to normal";
- }
- }
- Stage.addListener( EventListener );
不过即使做了上面这些,仍然不能实现全屏。另一个安全限制是需要在EMBED标签内添加一个新的属性:’allowFullScreen’,值为’true’:
- <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,19,0" id="testSWF" width="550" height="400" title="test">
- <param name="movie" value="test.swf" />
- <param name="allowFullScreen" value="true" />
- <param name="quality" value="high" />
- <embed src="test.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="550" height="400" allowFullScreen="true"></embed>
- </object>
不幸的是SWFObject和UFO都不支持这个属性。

Leave a Reply