使用FLASH制作课件,首先要考虑的一个问题就是课件的窗口的大小,也就是FLASH舞台的大小。

教育技术应用-Flash课件制作-设置舞台

默认情况下,FLASH的舞台大小是550*400,做课件有时把舞台改成800*600/1024*768[或稍小],正好和普通的15/17寸显示分辨率一样,也有时我们希望FlASH可以全屏播放,用户不能更改窗口大小,这些问题要如何解决呢?

问题一:如何改变舞台的大小

解决方法:在新建FLASH文档后,在文档的属性面板上可以编辑舞台大小和其它属性,包括背景颜色和动画播放速度(帧频:每秒播放多少帧)等。

如果看不到属性面板,请单击CTRL+F3.或者是从窗口菜单中选择。

 

设置Flash舞台大小

深入理解

舞台对于FLASH来说非常重要,只有放在舞台上的东西才能显示出来,在新建FLASH文档时,系统通过Stage类自动创建一个舞台舞台实例:stage(也就是你看到的舞台)。

在动画运行时,你可以通过stage的一些属性,如:stageWidth,stageHeight,stageframeRate等来获取舞台的具体状态:

1 新建FLASH文档,在第一帧输入以下代码:

trace("舞台的宽度是:"+stage.stageWidth);
trace("舞台的高度是:"+stage.stageHeight);
trace("FLASH播放的帧频是:"+stage.frameRate);
trace("FLASH的质量等级:"+stage.quality);

2 输出结果为:

舞台的宽度是:550
舞台的高度是:400
FLASH播放的帧频是:24
FLASH的质量等级:HIGH

3 常用的stage公用属性还有:

scaleMode : String  一个 StageScaleMode 类中指定要使用哪种缩放模式的值。
stage.scaleMode=StageScaleMode.NO_SCALE;//设置舞台属性不跟随播放器大小而改变

showDefaultContextMenu : Boolean 指定显示或隐藏 Flash Player 上下文菜单中的默认项。
  stage.showDefaultContextMenu=false; //屏蔽右键菜单

width和height,用来取得舞台上显示对象的宽度和高度,注意此属性和stageWidht,stageHeight的区别。

 

问题二:如何全屏窗口以及让窗口在全屏和原来大小中切换。

查看效果全屏播放FLASH动画(单击舞台上的按钮)

全屏播放课件最大的好处就是可以适应所有电脑屏幕的大小和分辨率,在FLASH中实现全屏的方法是利用舞台的displayState属性:

1 新建一个用来控制全屏和非全屏的按钮(可以制作成开关按钮),放到舞台上,起名为:full_btn

2 在主场景的时间轴第一帧输入以下代码:

说明:如果你只想实现全屏效果,只要在事件响应函数里写这一句就行了:

stage.displayState=StageDisplayState.FULL_SCREEN;

//为按钮添加侦听事件

full_btn.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;
      }

}

3 利用Flash文件菜单,进入发布设置,选择发布为SWF和HTML两种格式后,发布。

网页中的FLASH要实现全屏播放,请一定在HTML文件修改一下Flash播放时的属性:

允许全屏播放

<param name="allowFullScreen" value="true" />

类似的还有,控制Flash访问文件的安全性设置和背景透明等属性:

设置FLASH访问文件安全性,不允许跨域访问

<param name="allowScriptAccess" value="sameDomain" />

设置FLASH背景透明

<param name="wmode" value="transparent">

 

源文件下载http://www.eportfolios.cn/node/2078

4 如果做课件经常使用到这种功能,可以制作一个类文件,以后只要利用这个类,在课件中生成一个实例就可以了。

建立一个空Fla,类型为:AS3,保存文件为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文件中,利用文档类(舞台的属性)绑定:FSButton类。如果你不习惯按钮的外观,可以在FLASH里创建按钮。利用库中的按钮元件类,生成新实例。【如何从库中导出类

原文件下载http://www.eportfolios.cn/node/2078

 

问题三:如何关闭窗口退出FLASH课件

利用AS中的fscommand()函数可以关闭FLASH播放器,除此之外,利用fscommand()还可以实现FLASH与其它程序通信,以及存储变量等操作,具体格式如下:

fscommand(cmd_string, arg_string)

cmd_string指定所要执行的指令名,arg_string声明该指令所用到的参数。

注意这个函数的两个参数都是字符串,所以在输入参数时,必须加双引号,true或false也不例外,要用引号引起来

1 新建一个AS3文档,并创建一个按钮,实例名为:close_btn

2 在场景主时间轴的第一帧上输入:

close_btn.addEventListener(MouseEvent.CLICK,closeF);

function closeF(event:MouseEvent):void {
    fscommand("quit","true");

}

3 输出swf文件后,请单独运行swf文件(因为这是退出flash player)因此在编辑环境中CTRL+ENTER测试是没有效果的

问题四:如何禁止用户缩放影片

同问题三,使用的也是只是参数不同

//不允许缩放即在改变Flash player窗口大小时,FLASH中的对象不会发生变化

fscommand("allowscale","false");

与之类似的功能,还可以使用:

stage.scaleMode="noScale";

问题五:用户在改变窗口大小时,如何执行特别命令

改变对你大小的事件是Event.RESIZE,所以可以用这个侦听窗口大小有没有改变。

新建一个as3文档,在舞台上放一个info_txt的动态文本框

stage.scaleMode="noScale";
stage.align ="TL";
/*
对齐方式

这里纯粹是为多介绍一下stage的align属性,与此例功能无关。
StageAlign.TOP: 顶对齐
StageAlign.BOTTOM: 底对齐
StageAlign.LEFT: 左对齐
StageAlign.RIGHT: 右对齐
StageAlign.TOP_LEFT: 左上对齐简写TL
StageAlign.TOP_RIGHT: 右上对齐
StageAlign.BOTTOM_LEFT: 左下对齐。
StageAlign.BOTTOM_RIGHT: 右下对齐。
*/
function resizeHandler(event:Event=null):void {
        info_txt.text ="你改变了窗口大小";
}

stage.addEventListener(Event.RESIZE,resizeHandler);

这里有一些且行收集的很不错的FLASH课件推荐给大家:

1角的度量:http://qiexing.com/post/flash-cai-jiao.html

2 且行比赛计分器:http://qiexing.com/post/qiexing-count-score.html

3 as3 通过滑块控制图片的大小:http://qiexing.com/post/change-image.html 

4 且行制作的FLASH课件模板:Flash课件模板一  FLASH课件模板二

5你可以访问且行写的FLASH课件制作教程和提供的资料。