当前位置:课件范文网>范文大全 > 自我评价 > 用Flash实现物理课件“积件”式开发

用Flash实现物理课件“积件”式开发

2020-09-22 19:22:05 浏览量:

用 Flash 实现物理课件的“积件”式开发

 在我国,课件的开发速度远远跟不上教学的需求,原

 因在于课件开发效率极低, 主要表现为重复开发, 没有积累。积件的重复利用特性可以降低我国课件开发总成本,是提高开发效率的有效手段。

 笔者认为,如果能使得制作课件的时间缩小为半个小时至一小时(接近于 PPT课件制作),积件化课件制作将会得到普及,并成为主流。

 一、物理积件的特点

 如果把物理课件的组成模块看作一级积件的话,图表、信息、例题、资料、练习并非物理积件所独有,应属于通用积件,因此,实际意义上的积件主要是指物理实验部分。

 物理是典型的实验科学,很多教师认为模拟实验现象不如让学生亲自动手做。这种观点有一定道理,但不应该就此抹煞实验模拟类积件,此类积件具有安全、可重复操作、演示效率高和可对比观察等优点。因此实验模拟积件与真实实验应共同存在,两者起到相辅相成的作用。

 物理模拟现实比较复杂,要开发一个好的物理积件库,

 必须要构建不可视对象的积件。例如力是不可视对象,它只有作用于物体才能够表现出来。

 二、物理积件库的三层构想及开发实践

 1.物理积件库的三层构想

 按照笔者构想,每一个积件库可以分为三个层级。分别为素材层面的整合类积件库;具有属性方法对象层面的积件库;以侦听和注册等手段来组织,以“自动交互”为目的的积件库。每一层级都以上一层级为基础构建,逐步增加开发难度与功能。

 第一层级很容易构建,绘制或者征集整套的物理仪器图库,如全套电学仪器图库、光学仪器图库、理学仪器图库,其中包括简单的动画即可。

 第二层级较为复杂,它为所有仪器元件增加电阻、电功率、额定电压,为组件的运转制作动画(如电机转动动画、

 灯点亮动画等);为各种仪器元件增加类似“通电(电压) ” 方法,如灯泡的通电方法需要接受一个电压参数,灯泡会根

 据电压决定亮度。这些属性和方法不一定都用到,但是完成后,第三层级的积件就有了建立的基础。

 第三层级在第二层级的基础上进行开发,两者的区别在于,如果使用第二层级的积件制作课件,需要由使用者进行

 逻辑判断(如电路是否需要连通) ,使用第三层级进行制作,

 系统会自动判断电路是否连通。

 2.物理积件库的具体开发

 使用 Flash 软件进行课件的积件式开发是当前的积件式开发的一个重要分支,它有望成为主流。

 物理积件库可以分为四个库,按照开发规模大小依次为:力与运动、 电学、光学、机械波。光学部分内容少而且独立,本文篇幅所限,所以在此仅讨论电学、力与运动。

 1)电学部分开发

 第一层级积件库建设:只要整理一套风格统一的可视仪

 器库便可形成(如下图) 。

 第二层级积件库建设:要给各种仪器元件增加各种属性(如电阻,额定电压);此外,要根据不同仪器,增加不同“加压”连通函数。连通函数可以传递“电压”参数,如小

 灯泡的连通是这样的,灯泡 .加压 (“电压数” )。一个滑动变阻器调节灯亮度的核心代码为:

 灯泡 .omEnterFrame=function(){

 if( 开关 .连通 ){

 灯泡 .加压 (灯泡 .电阻 *( 电池 .电压 /( 电池 .电阻 +变压器 .

 电阻 +灯泡 .电阻 )));

 }

 Else{

 灯泡 .断开 ();

 }

 }

 此代码的作用是根据各个仪器元件的属性决定灯泡亮度。电路之间的逻辑关系是由编程来体现,不是根据电路连接自动作出判断的。

 第三层级积件库建设:它比第二层级的积件使用少了编程与逻辑过程,但这又对积件开发提出了更高的编程要求。鉴于实现此模式有几种不同的架构,笔者推荐以基于导线和触点的电路连接为架构。落实到技术上,即为每一个仪器元件增加触点,导线必须连接到触点才算连接完成,系统根据导线的连接方式计算电路的电压电流、最终决定电器以及整个电路的状态,此方案设计的好处是允许多触点仪器的存在(如滑动变阻器和许多测试仪器入电流表就有多个触点,另外它还具有仿真实验室的效果,甚至还可以使用简单元件来实现复杂仪器的组装) 。

 2)力与运动学部分开发

 力与运动学部分包括微观热学、电磁力学部分、功与机

 械能部分、机械运动、碰撞等,它是物理学科最大的一部分内容。物理现象通常是通过物体运动表现的,这种运动又是不可视的,因此第一层级的力学部分积件库涉及不到力和运

 动,通常仅仅绘制一些常见的物理仪器。第二层级就要构建

 运动类, Flash 自带 Tween 类就能解决开发运动类所需的基

 本功能,对于使用者来说,掌握运动类的方法和属性会有一

 些难度,如下例的代码是控制一个小球跳动,直到能量损失

 完停止。

 #include "lmc_tween.as"

 $tweenManager.broadcastEvents = true;

 小球 .弹起 = true;

 小球 .高度 = 200;

 衰减系数 = 0.2;

 跳跃时间 = 1;

 小球 .onPress = function() {

 小球 .tween("_y", 小球 ._y+小球 .高度 , 跳跃时间 ,

 "easeInQuad");

 };

 小球 .onTweenEnd = function() {

 if ( 小球 .弹起 ) {

 小球 .tween("_y", 小球 ._y-小球 .高度 , 跳跃时间 ,

 "easeOutQuad");

 } else {

 小球 .tween("_y", 小球 ._y+小球 .高度 , 跳跃时间 ,

 "easeInQuad");

 小球 .高度 = 小球 .高度 *(1- 衰减系数 ); 跳跃时间 = 跳跃时间 *(1- 衰减系数 );

 }

 小球 .弹起 = !小球 .弹起 ;

 };

 小球 .addListener( 小球 );

 第三层级因为减少编程量, 使用的优势凸显。

 笔者建议,开发者应多下工夫直接开发第三层级积件库。

 其构想是:跳过运动类开发,直接开发力类,物体的运动完全由力控制,由力来决定物体的运动形态,以便减少运动类的开发工作量。以下代码是一个假想的复杂模拟实例:在一个悬挂在点电荷电场中的小球保持静止,细绳偏转一定角度。按下按钮,绳子断掉后,小球在重力和电荷力的合力下向电荷运动。可以随时按照相按钮拍下小球的位置。

 重力 =New 力 (“重力” );

 电场力 =New 力 (“电场力” ,电荷 );

 弹力 =New 力 (“弹力” ,细绳 );

 小球相机 = New 相机 (“小球” );

 弹力 .添加 (小球 );

 重力 .添加 (小球 );

 电磁力 .添加 (小球 );

 按钮 .onPress=function(){

 弹力 .取消 (小球 );

 相机 .照相 ();// 或者在这里启动一下相机:

 }

 照相按钮 .onPress=function(){

 相机 .照相 ();

 }

 弹力根据小球的质量,带电量自动计算受到力的大小,决定细绳偏转角度。绳子断裂后,系统自动根据受力决定小球的运动轨迹(并不一定是直线) 。

 三、怎样组织人员建设物理积件库

 物理积件库开发复杂度高,开发人员需要既有教学经验,又有编程能力。然而这样的人才少之又少,所以人员的组织有两个方向:一是挑选程序员,配以教师交流。二是挑选老

 师,培训编程。前者的优势在于产品开发快, 技术比较专业;可一旦失去资金支持,资源库的更新和维护就跟不上。后者

 问题是开发周期长,前期不够规范;优势在开发后期,经过培训的这些老师自己可以更新和维护。

 最理想的人员组织形式为前期专业人员开发,同期教师培训。对不以营利为最终目的的开源项目来说,培训应该和

 开发同步进行。

 如采取结对编程进行开发, 再同步予以培训,

 虽然进度会慢一些,但是能够培养出技术骨干,方便后期推

 广和维护。

 (作者单位:山东天鸿书业多媒体开发中心)

 

最新推荐
猜你喜欢

课件范文网 友链、商务、投稿、客服:QQ:1870841073 邮箱1870841073@qq.com

Copyright @ 2006 - 2020 课件范文网 All Rights Reserved

课件范文网 版权所有 浙ICP备15012459号-1