AS2与AS3版本的Flash全屏控制

作者:袖梨 2022-07-02

 如何实现Flash Player 9 Update 2的全屏控制,我将给出2个版本,第一个版本是AS2的,第二个版本是AS3的,有趣的是,很多会写AS2的朋友,都很难写出AS3版本的,可能还是很难适应语法上和制作方式上的改变。
AS2版本全屏播放控制:
场景中按钮上AS部分:

on(press){
  toggleFullScreen();
}


时间轴第一帧AS:

//Button on Press触发toggleFullScreen函数
function toggleFullScreen(){
  if(Stage["displayState"]=="normal"){
    Stage["displayState"]="fullScreen";
  }else{
    Stage["displayState"]="normal";
  }
}


Shift+F12发布后,更改html中的所有allowFullScreen参数值为true,切记。
源文件及效果包下载
AS3版本:
建立一个空Fla,AS3文件模式,save文件名AS3FullScreen.fla
建立一个FSButton.as文件,代码如下:

package {
  import flash.display.Sprite;
  import flash.display.Stage;
  import flash.events.MouseEvent;
  public class FSButton extends Sprite {
    public function FSButton() {
      var navBtn1:AS3FullScreen=new AS3FullScreen();
      this.addChild(navBtn1);
      navBtn1.x=200;
      navBtn1.y=200;
      navBtn1.addEventListener(MouseEvent.CLICK,goFullScreen);
    }
    function goFullScreen(event:MouseEvent):void {
      switch (stage.displayState) {
        case "normal" :
          stage.displayState = "fullScreen";
          break;
        case "fullScreen" :
        default :
          stage.displayState = "normal";
          break;
      }
    }
  }
}


在AS3FullScreen.fla场景的文档属性中,Document Class栏输入FSButton。
Shift+F12输出,更改html中的所有allowFullScreen参数值为true,切记。
AS3FullScreen.rar

令我吃惊的是,AS2版本只有10K,AS3版本的Fla文件居然有350k,为什么,因为我比较懒,创建了一个AS3FullScreen的类,在FSButton中引用,其实更好的方式是写一个Sprite对象,初始化过程中将这个sprite对象的buttonMode属性设置为true即可。但是代码要多一些,更加不适合AS2写惯了的朋友,虽然我的Fla有350k,但是我的SWF才2k左右,事实证明,AS3的SWF编译优化还是很强劲的,代码能重用就重用,component能复用就复用。

相关文章

精彩推荐