您的位置 >>教育技术 >>课件制作 >>

也谈板书效果的实现 ---- 线性交互与非线性交互

发表日期:2007/11/13 8:45:18 出处:本站 作者:无 有1523位读者读过

《中国电脑教育报》今年第2期G7版刊载了一篇文章《小技巧也能派上大用场》,作者几经周折在一个三列四行的表格内实现了板书效果(即单击第N个单元格使之显现内容时,前面的单元格内容不会因此消失)。实现板书效果涉及到线性交互和非线性交互。线性交互就是程序的流程只能按既定的顺序前进(或后退),而不能离线半步,给使用者一个死死的思路。《小技巧》一文中板书效果的实现,用的就是这种线性交互——12个单元格只能按事先规定好的顺序“板书”出来。

  而在实际的教学过程中,讲课老师完全可能不按某种既定的顺序去填完一个三列四行的表格——教学有法,教无定法!再说,不同的教师教学思路也不会一样,有的可能先填第一行,有的则可能根据课堂教学需要先填第二行。笔者认为应该用非线性交互来填这个表格。

  所谓非线性交互,即程序运行到每一步,呈现给使用者的都是网状的多元选择,能到另外的任一个点上,不像线性交互那样,只有一条路可走。

  就一个三列四行的表格来说,线性交互呈现给使用者的,只有一种填表顺序——从第一个单元格到第十二个单元格;而非线性交互则不一样,填第一个单元格时,有12种选择(即12个单元格,不管先填哪个都可),填第二个单元格时,有11种选择(填过的那个当然不必再填)……以此类推,共有12×11×…×1=479001600种填表顺序!这就给使用者提供了一个任意的选择方案,使课件具有了最大的灵活性和实用性!

  那么,如何实现这种非线性交互?

  方法一:利用_alpha属性或_visible属性来实现。将12个单元格内容分别制成12个mc,放在同一帧上(注意与表格位置相合),然后分别为每个mc加上如下语句:

  action:

  onClipEvent (load) {

  this._alpha = 0;

  }

  on (press) {

  if (this._alpha == 0) {

  this._alpha = 100;

  } else {

  this._alpha = 0;

  }

  }

  不管单击谁,都既可让它显示,也能让它隐藏。是不是很方便灵活!

  方法二:利用play函数实现。12个单元格内容分别制成12个mc,每个mc共两帧,第一帧为空白关键帧,第二帧为单元格内容,每帧都加一个帧动作:stop(),然后再为12个mc都加上这样的action:on(press){this.play()}——这样,当课件运行到填表时,12个mc都停在第一帧上,12个单元格都呈空白状态,用户单击任一单元格(实际上是在mc上单击),则此mc播放到第二帧停止,实现“板书”效果,再次单击,则此mc又重回到第一帧(空白帧)上,实现“擦黑板”效果!

  需要注意的是,不管是方法一还是方法二,都要在mc上单击,为了能击中目标,必须在每个mc内放一个透明的mc作背景,以免无处可击,按不住mc!