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



在我国,课件的开发速度远远跟不上教学的需求,原因在于课件开发效率极低,主要表现为重复开发,没有积累。积件的重复利用特性可以降低我国课件开发总成本,是提高开发效率的有效手段。
笔者认为,如果能使得制作课件的时间缩小为半个小时至一小时(接近于PPT课件制作),积件化课件制作将会得到普及,并成为主流。
一、物理积件的特点
如果把物理课件的组成模块看作一级积件的话,图表、信息、例题、资料、练习并非物理积件所独有,应属于通用积件,因此,实际意义上的积件主要是指物理实验部分。
物理是典型的实验科学,很多教师认为模拟实验现象不如让学生亲自动手做。这种观点有一定道理,但不应该就此抹杀实验模拟类积件,此类积件具有安全、可重复操作、演示效率高和可对比观察等优点。因此实验模拟积件与真实实验应共同存在,两者起到相辅相成的作用。
物理模拟现实比较复杂,要开发一个好的物理积件库,必须要构建不可视对象的积件。例如力是不可视对象,它只有作用于物体才能够表现出来。
二、物理积件库的三层构想及开发实践
1.物理积件库的三层构想
按照笔者构想,每一个积件库可以分为三个层级。分别为素材层面的整合类积件库;具有属性方法对象层面的积件库;以侦听和注册等手段来组织,以“自动交互”为目的的积件库。每一层级都以上一层级为基础构建,逐步增加开发难度与功能。
{dy}层级很容易构建,绘制或者征集整套的物理仪器图库,如全套电学仪器图库、光学仪器图库、理学仪器图库,其中包括简单的动画即可。
第二层级较为复杂,它为所有仪器元件增加电阻、电功率、额定电压,为组件的运转制作动画(如电机转动动画、灯点亮动画等);为各种仪器元件增加类似“通电(电压)”方法,如灯泡的通电方法需要接受一个电压参数,灯泡会根据电压决定亮度。这些属性和方法不一定都用到,但是完成后,第三层级的积件就有了建立的基础。
第三层级在第二层级的基础上进行开发,两者的区别在于,如果使用第二层级的积件制作课件,需要由使用者进行逻辑判断(如电路是否需要连通),使用第三层级进行制作,系统会自动判断电路是否连通。
2.物理积件库的具体开发
使用Flash软件进行课件的积件式开发是当前的积件式开发的一个重要分支,它有望成为主流。
物理积件库可以分为四个库,按照开发规模大小依次为:力与运动、电学、光学、机械波。光学部分内容少而且独立,本文篇幅所限,所以在此仅讨论电学、力与运动。
(1)电学部分开发
{dy}层级积件库建设:只要整理一套风格统一的可视仪器库便可形成(如下图)。

第二层级积件库建设:要给各种仪器元件增加各种属性(如电阻,额定电压);此外,要根据不同仪器,增加不同“加压”连通函数。连通函数可以传递“电压”参数,如小灯泡的连通是这样的,灯泡.加压 (“电压数”)。一个滑动变阻器调节灯亮度的核心代码为:
灯泡.omEnterFrame=function(){
if(开关.连通){
灯泡.加压(灯泡.电阻*(电池.电压/(电池.电阻+变压器.电阻+灯泡.电阻)));

El se{
灯泡.断开();


此代码的作用是根据各个仪器元件的属性决定灯泡亮度。电路之间的逻辑关系是由编程来体现,不是根据电路连接自动作出判断的。
第三层级积件库建设:它比第二层级的积件使用少了编程与逻辑过程,但这又对积件开发提出了更高的编程要求。鉴于实现此模式有几种不同的架构,笔者推荐以基于导线和触点的电路连接为架构。落实到技术上,即为每一个仪器元件增加触点,导线必须连接到触点才算连接完成,系统根据导线的连接方式计算电路的电压电流、最终决定电器以及整个电路的状态,此方案设计的好处是允许多触点仪器的存在(如滑动变阻器和许多测试仪器如电流表就有多个触点,另外它还具有仿真实验室的效果,甚至还可以使用简单元件来实现复杂仪器的组装)。
(2)力与运动学部分开发
力与运动学部分包括微观热学、电磁力学部分、功与机械能部分、机械运动、碰撞等,它是物理学科{zd0}的一部分内容。物理现象通常是通过物体运动表现的,这种运动又是不可视的,因此{dy}层级的力学部分积件库涉及不到力和运动,通常仅仅绘制一些常见的物理仪器。第二层级就要构建运动类,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(小球);
第三层级因为减少编程量,使用的优势凸显。笔者建议,开发者应多下工夫直接开发第三层级积件库。
其构想是:跳过运动类开发,直接开发力类,物体的运动xx由力控制,由力来决定物体的运动形态,以便减少运动类的开发工作量。以下代码是一个假想的复杂模拟实例:在一个悬挂在点电荷电场中的小球保持静止,细绳偏转一定角度。按下按钮,绳子断掉后,小球在重力和电荷力的合力下向电荷运动。可以随时按照相按钮拍下小球的位置。
重力=New力(“重力”);
电场力=New力(“电场力”,电荷);
弹力=New力(“弹力”,细绳):
小球相机=New相机(“小球”);
弹力.添加(小球);
重力.添加(小球);
电磁力.添加(小球);
按钮.onPress=function(){
弹力.取消(小球);
//相机.照相();//或者在这里启动一下相机:

照相按钮.onPress=function(){
相机.照相();

弹力根据小球的质量,带电量自动计算受到力的大小,决定细绳偏转角度。绳子断裂后,系统自动根据受力决定小球的运动轨迹(并不一定是直线)。
三、怎样组织人员建设物理积件库
物理积件库开发复杂度高,开发人员需要既有教学经验,又有编程能力。然而这样的人才少之又少,所以人员的组织有两个方向:一是挑选程序员,配以教师交流。二是挑选老师,培训编程。前者的优势在于产品开发快,技术比较专业;可一旦失去资金支持,资源库的更新和维护就跟不上。后者问题是开发周期长,前期不够规范;优势在开发后期,经过培训的这些老师自己可以更新和维护。
本文来源于CSSCI学术论文网:http://www.csscipaper.com/ 全文阅读链接:

已投稿到:
郑重声明:资讯 【用Flash实现物理课件的“积件”式开发】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——