课件制作中动态目标控制移动的设计与实现

2015-04-04 06:41福建省侨兴轻工学校吴红霞
当代教育实践与教学研究 2015年11期
关键词:动态控制脚本图标

福建省侨兴轻工学校 吴红霞

一、问题引入

目前,发现许多教师对Authorware 软件运用的非常少,制作课件仅限于PPT 或相当少的一部分人使用FLASH 软件,究其原因,主要问题之一是流程图式的设计给许多老师带来了一种恐惧,就连专业老师一说到编程就摇头,更何况是非专业老师根本就没有接触过编程,问题之二是多媒体软件自身内置许多系统函数和系统变量,学习和掌握这些脚本语言的编程给许多人带来了编程上的障碍,由此代之的是FLASH 的元件概念和时间轴的运用,但是一接触到ActionScript 的技术问题上,同样也是望而却步,往往使得教学和应用上都是层面上的一些东西,为此,当遇到问题深入一些时,就给许多教师课件设计的制作带来了许多苦恼,由此造成许多教师在这一教学环节上,对使用课件运用是能少用尽量少用,能不用就尽量不用的现象。本文针对AW 中的“移动”图标控制对象的移动,借助内置函数SetMotionobject()和IconTitle 变量的特殊功能,实现了动态控制目标移动的问题,为读者提供一种通用性的多对象动态控制的设计思想和方法。希望能对教师们研发精品课件的制作有其借鉴之用。

二、程序设计的基本思想

在多媒体课程教学中,我们常常都会遇到类似于一种多图层多目标动态控制移动的问题,如果单一的“移动”图标来实现,往往是困难重重甚至是无法实现,针对这个问题,我们通过简单的脚本程序代码和内置系统函数SetMotionobject()相结合的方法,实现多图层多目标动态控制移动的问题,设计思路分两种情况来实现,首先是实现图片多层交互替换的功能,其次是一个移动图标控制移动多个目标的功能。

1.图片变层的实现、由图1、2、3 所示,图片变层交互控制图片移动,其基本设计思想是:当移动第一张图片时,可以看到第二张图片的显示,当移动第二张图片时,可以看见第三张图片的显示,依次类推,当移动第N-1 张图片,可以看见第N 张图片,由图2 移出动作所示。反过来,当第一张图片移回动作时,是进入到N 张图片的下面,见图3 移回动作所示,这类问题的解决,就牵涉到每张图片的变层的设计问题。本程序利用函数INT 和系统变量IconTitle 结合,读取图片图层的序号,通过脚本代码的计算,完成图片变层的计算功能。

图1 原始位置

图2 移出动作

图3 移回动作

2.动态控制多目标移动的实现。动态控制移动对象,其程序设计的基本思想是:当鼠标在图片1 上,单击此图片1,图片1 做出移出和移回的两个移动动作,以此类推,当单击第N 个图片时,图片N 作出移出和移回的两个移动动作,可以看出,若我们有N 张图片,要用2N 个“移动”动作来完成图片的移动,这给程序的设上带来了一定的难度,其原因是,一方面无法实现程序设计上的可通用性,另一方面程序设计流程显得复杂和繁琐,加上每张图片都由两个动作完成,如果我们控制N 张图片的移动,就有2N 次移动来实现整个程序的完成,显然,我们可以看出,如果N=100,那么就有200 个“移动”图标,这是在程序设计上也是不可能的,为此,我们需要借助Authorware 内置的系统函数SetMotionobject()来实现一个移动图片控制多个对象的功能,其动态设置移动对象的系统函数格式如下:

SetMotionobject(IconID@“Motion”,IconID@“Object”)

该函数为当前运动图标设置运动物体,可在运行和设计时工作,其Motion 是指定运动图标的标题, Object 是指定被移动物体所在显示图标的标题。从而达到更换移动对象的目地。

总之,控制图层变换和控制移动都是在动态控制移动中一次变更完成的,而单击动作的对象控制只需设置一个热区即可,最后,还需要对移动完成的对象进行擦除处理。其程序设计流程如图4 所示。

图4 设计流程

三、程序设计流程的实现

程序设计流程如图4 所示。程序功能说明和解释:

从流程图上,显然我们看出,图片群组图标中有17 张图片,而动作移动的交互控制是利用热区进行交互控制的,而yd 和yd2是负责更换移动目标的移动,分别控制移动弹出和移动收回,擦除图标是负责移动图标的擦除,整个流程简单明了,实现动态控制移动目标的作用。

流程说明:

1.窗口大小计算图标是对演示窗口的设置;脚本代码如下:ResizeWindow(750,450)

2.设置初始值计算图标是对下面程序控制的初始值:脚本代码如下:

layer1:=22

每逢农历二月初二前后,便是廿四节气之一的惊蛰,微微细雨伴随着滚滚春雷润泽大地,神龙睁开眼,抬起头,世间都苏醒了。在那天,古人们多会举办赛龙舟活动,焚香水畔,以祭龙神,民言:二月二,龙抬头。

num:=1

num1:=MOD(num,17)+1

其中:layer1 是表示图片的总的层数,而num 和num1 变量是负责完成交互控制移动次数的判断。

3.面板显示图标仅仅是显示文字专用的图片,如图1 中右边的图片。

4.图片组群组图标,仅仅存放17 张图片的显示图标,分别命名为:h1,h2,…,h17。

5.交互图标的附属计算图标,脚本语句如下:if num>18 then

num:=1

num1:=MOD(num,17)+1 end if

主要是累计交互计算判断而用,当num=18 时,退出交互控制。

6.移动图片群组图标放了三个图标,两个移动图标和一个擦除图标,主要用于yd 移动弹出、yd2 移动收回和擦除移动对象,如图4 中右边的流程线。其三个图标的脚本语句如下:

第一个yd 的附属计算图标中的脚本代码:x:=585 y:=257

SetMotionObject(@"yd", @("h"^num))

其移动图标层的属性设置为:layer1-INT(IconTitle)第二个yd2 的附属计算图标中的脚本代码:x1:=320 y1:=257

SetMotionObject(@"yd2", @("h"^num))

其移动图标层的属性设置为: INT(IconTitle)+1

擦除计算图标中的脚本代码:EraseIcon(IconID@("h"^num))num:=num+1

num1:=MOD(num,17)+1

整个程序控制非常简单明了,读者只需按照流程和脚本语句代码,即可实现变层多对象动态移动控制的功能。

四、说明

对于上面的程序我们可根据实际情况,做相应的变通或改进,比如,当我们所要控制的图片太多时,都放在群组图标中会造成程序容量的增大,不易灵活的更改图片。因此,可以采用读取外部文件数据图片进行控制,由于篇幅所限,留给读者自行研究。

总之,利用图标和流程线来实现程序结构的设计和基本功能,再通过系统函数和脚本语言完成复杂的编程设计,这种设计往往可以使得课件程序异常的简洁和高效,这种课件设计上的一种变通解决问题的方法,也恰恰是我们所要学习的程序设计的思想与方法。

[1]袁海东.深入Authorware7.0编程[M].北京:电子工业出版社,2004.04

[2]毕广吉.Authorware多媒体开发程序设计与典型实例[M].北京:人民邮电出版社 ,2004.07

猜你喜欢
动态控制脚本图标
酒驾
基于全过程动态控制下的建筑工程进度管理研究
探究施工阶段工程造价动态控制的方法与策略
建筑工程造价特点及动态控制实施方法探讨
安奇奇与小cool 龙(第二回)
Android手机上那些好看的第三方图标包
图标
快乐假期
小编的新年愿望
中国风图标设计