吴 云 虎
(扬州职业大学, 江苏 扬州 225009)
线上线下混合式教学实施效果的一个关键点是看线下学生的自主性学习过程能否得到有效保障[1],从目前混合式教学实施情况看,教学信息主要的承载软件是微软公司演示文稿PowerPoint,演示文稿用户界面简洁,风格统一,而且容易上手,课件制作效率高,足以胜任日常普通教学活动需求。学前儿童活动领域的自主性学习要求演示文稿具备智能性、可控性和灵活性特征,这时演示文稿中仅有的超链接、动作、按钮和触发器等功能的交互性就显得很薄弱。为了增强演示文稿的动态交互功能,国内外研究提出了两类主要解决方案,一类是利用VSTO扩展Office应用程序,这在本质上已经属于应用程序底层开发,操作自由性程度大,但技术要求也很高[2];另一种方法是利用第三方ActiveX图形控件,这是目前研究中比较普遍使用的方法[3]。ActiveX图形控件沿袭Windows程序开发制式标准,其设计样式经常难于与当前课件界面上设计形象进行整体协调。本研究基于面向对象的编程方法,使用VBA宏语言,挖掘Office应用程序中交互功能[4],设计的课件可以直接通过鼠标单击和悬停动作,实现对幻灯片上实例对象的控制操作,从而能够很好地满足自主学习中的人机交互需求。
在Microsoft演示文稿中Shape对象模型的派生体系如图1所示,这些数量众多的Shape体系对象,对父辈属性及方法进行继承和派生,并被组织在体系巨大的“PPT对象模型”的层次架构中[5]。在这个体系中应用为顶级核心对象,演示文稿集和当前活动演示文稿均为顶级对象,可以直接对它们的属性和方法进行引用。在演示文稿对象类型中,自选图形、任意多边形、OLE对象和图片等都属于Shape对象类型,它们在演示文稿上的外显称为由Shape对象创建的具体应用实例。需要从顶级对象逐级索引到这些对象,才能对其属性和方法实施引用,继而去改变由Shape对象创建的所有实例的属性和行为。在演示文稿放映模式下,系统通过鼠标事件触发机制对实例的事件处理方法中的用户预定义代码,亦即系列Shape对象属性和方法的引用,以批处理方式执行。
图1 PPT对象模型中Shape派生体系
Shape实例交互过程swap方法见表1。参数ByVal oSh As Shape的作用是通过按值传递方法获取指向活动实例的指向句柄oSh。swap交换方法的代码编写是开放性的,在User Batch Code部分,按照教学设计预输入一系列Shape对象属性和方法的引用集合,就可以对演示文稿上所有创建实例进行目的性操纵,进而达成预期的教学目标。还有一类系统的方法,如由Shape对象创建的实例的显隐性设置,它们的处理方法是由已经固定编译好的系统处理代码,在必要的时候只需要调用即可。这些方法的调用格式为“对象(实例名称).方法”,对象与方法之间要使用“.”隔开,如ActivePresentation.Slides(1).Shapes(“victory”).Visible=msoFalse。
表1 实例交互swap方法和过程
在交互式演示课件制作过程中,首先,建议修改实例对象的名称和初始状态,这样可以避免演示文稿中的实例出现难以辨别的简单增序式的自动命名方式,更方便于VBA脚本对实例的循名使用。其次,增加鼠标事件的处理方法,通过“开发工具”菜单→“代码”功能区→“宏”组创建事件处理方法,并在进入的VBE脚本编辑器中编写User Batch Code。首次使用开发工具需要在“文件”菜单→“选项”设置→“自定义”功能区的“主选项卡”中勾选“开发工具”选项。最后,在“插入”菜单→“链接”功能区→“动作”选项处打开的“操作设置”窗口中,选择鼠标事件类型(单击/悬停),并在其下“运行宏”栏目中绑定鼠标事件处理方法。这样就完成了制作VBA交互式课件的工作流程。
对社会、科学、语言和健康等不同领域儿童活动的组织形式进行总结,可以将幼教PPT交互式课件分为认知辨别、适项选择、匹配分类和拼图整合等基本类型。这些不同类型交互式课件的系统设计环节都具有相似性,都应该包括问题情境、应答操作和结果反馈三个部分。各类问题情境的形式设计也都基本相同,都是以“图形图像”信息形式提出问题并构建出对应情境,因此提出的问题要明确,情境要适宜。应答操作需要把所有可能的操作选项全部罗列出来,系统都能做出相应的反应,要求突破传统应答设计中一题一答、一页一题的技术限制;在应答操作过程中,提供适当提示和帮助,以提高幼儿成功的机会。结果反馈能够对正确的应答操作给予鼓励性反馈;对有缺点的和错误的应答操作还应当给予续做或重做的机会[6]。
2.2.1 定位
定位在这里是指幼儿完成应答操作后,应用程序根据幼儿的操作指向意图,将活动图形实例移动到所指定区域的方法。例如,在幼儿园小班语言领域《小动物们最爱吃什么》组织活动中,电子白板上每个小动物的嘴巴面前都杂乱地分布着不同的食物。现在需要幼儿为小兔子选择最爱的食物,当儿童选中胡萝卜图形实例后,就需要将胡萝卜图形实例移动到小兔子嘴巴面前。在具体的实现方法上,可以在每个小动物的嘴巴面前区域都放置一个单一食物图形实例,在幼儿应答操作(两次不同实例上的单击)完成后,将小兔子嘴巴面前区域的图形实例与胡萝卜图形实例交换位置坐标,这样就可以将胡萝卜图形实例定位到指定区域了,而幼儿此时也完成了一次应答操作。
2.2.2 判断
判断是幼儿每一次完成应答操作后,系统对幼儿应答操作的正误情况进行评估的方法。判断的具体方法是,在实例名称中预先设置特征字符,当系统运行时通过比对特征字符是否匹配来确定两个实例间的关系。例如,将一系列位置图形实例依次命名为T1,T2,T3……,需要执行移动的图形实例名称对应命名为S1,S2,S3……,这里的特征字符分别是1,2,3……,这样只需要遍历一次所有特征字符相同的图形实例配对的坐标是否一致并计数,就可以知道幼儿应答操作过程中进度完成的情况。
选择幼儿津津乐道的电影《熊出没》中的卡通形象为例,设计并制作一个拼图整合型的交互式课件。
首先,准备一张JPG格式《熊出没》中卡通形象的图片文件,要求图片色彩鲜艳,像素清晰。在图像素材网下载的图片需要在Photoshop中进行预加工,比如消除网站和广告标记,调整图片色彩,以及裁剪重新构图。其次,在PPT中绘制“无填充色”正方形,使用“合并形状”中“形状拆分”和“形状结合”操作,在正方形直边缘设计出榫槽状接口,将这些正方形复制形成3×3组合。把调整好的组合置于图片上层并全选,需要注意的是,在全选顺序上要先选中图片,再选中正方形组合,使用合并形状中的形状拆分操作,将图片分割成9小块,依次命名为T1,T2,T3,……,T9,并设置成隐藏状态。再将前面分割出来的9小块图像复制一份,设置成显性状态,复制图片依序命名为S1,S2,S3,……,S9,需要注意将图片位置调整对齐。最后,在PPT设计场景上还需要增加帮助图形help实例,以及初始状态为隐藏属性的应答操作成功的图片victory实例和提供对照帮助的图片information实例等。
现在需要通过“开发工具”创建名为swap的宏,并在自动进入的VBE编辑器中增加方法所需要的传递参数ByVal oSh As Shape,全局变量temporaryX,temporaryY用来保存移动实例的现场位置坐标,开关变量flag用来控制实例配对的位置交换,全局变量firstSelected用来保存位置交换中第一单击实例的名称,编写的批处理代码如表2所示,在动作设置中分别为实例S1,S2,S3,……S9选择鼠标事件类型为“鼠标单击”,并在“运行宏”栏目将其绑定到swap事件处理方法。
表2 《熊出没》卡通拼图定位与互换方法的代码
在VBE中增加拼图进度的检测判断isFinished过程如表3所示。
表3 《熊出没》卡通拼图检测、判断和反馈方法的代码
最后还需要创建名为help的宏,定义开关变量hlp用来控制帮助实例的显隐属性,编写的批处理代码如表4所示,在“动作”设置中为帮助实例添加鼠标事件类型为“鼠标悬停”,并在“运行宏”栏目将其绑定到help事件处理方法中。
表4 《熊出没》卡通拼图帮助方法的代码
在幻灯片放映模式下,我们可以先后单击需要交换位置的两个图形实例,这时系统就会由“鼠标单击”事件触发swap方法,将选中的两个图形实例的位置进行互换。当所有图形实例都互换到预设的正确位置时,检测判断isFinished过程就会反馈出成功的结果。拼图区域左侧的帮助实例使用“鼠标悬停”触发事件,可以在拼图区域上显示出完整的拼图图样,随时给拼图过程提供对照帮助。课件设计能够很好地满足幼儿教学活动中既定交互性要求。
在演示文稿中鼠标“动作”设置虽然只提供了“鼠标单击”和“鼠标悬停”两类事件,但合理的组合使用就完全能够满足大部分交互式课件的设计需求。另外幼教PPT交互式课件制作过程中的最大问题就是素材准备周期比较长,使得课件产出效率较低,在实践中通过发布已预设VBA脚本代码的模板,发动学前专业全体学生,群策群力共建素材库进行解决。这就要求模板结构和方法简洁,VBA控制代码逻辑性好,易于修改和维护。这样学前专业的学生通过复制所需要的模板,对幻灯片上图形图像实例进行更新;查看VBA代码及相应功能注释,适当修改程序中相关编码;测试演示文稿功能,版式适当调整后,就能进行课件的二次发布。从增强交互式课件应用功能的角度看,未来的课件系统设计还应当考虑幼儿应答操作的痕迹记录以及错题重演等功能。