您的位置: turnitin查重官网> 计算机 >> 程序设计 >基于lingo实现多媒体中图文滚动控制

基于lingo实现多媒体中图文滚动控制

收藏本文 2024-01-22 点赞:8876 浏览:34195 作者:网友投稿原创标记本站原创

摘要:在利用Director软件制作多媒体时,系统所提供的控件相对单一,针对一些个性化的设计需求,就需要借助Lingo语言来实现。该文通过对Lingo语言的应用,实现了对多媒体中图文界面的滚动控制。
关键词:多媒体;Director;Lingo语言;滚动控制
1009-3044(2012)20-4983-03
在众多多媒体制作软件中,Director不仅可以方便、快捷地将图像、声音、文字、视频,甚至3D影像动态集成在一起,而且可以通过自带的Lingo语言实现对声音、视频、文本、动画等的交互控制。在一般的多媒体制作中,对于多图像或超长文本对象的显示控制存在功能单一、界面视觉效果平淡的缺陷,不符合个性化多媒体设计的需求。该文结合教学实践,借助于Lingo语言,通过对自定义滚动条各元素施加脚本代码,实现了对多图超长文本界面的滚动控制。
1 Lingo语言概述
Lingo语言是Director自带的模块化、面向对象的程序设计语言,是Director实现交互功能的重要工具语言,可以实现对声音、视频、文本、动画等的交互控制。
Lingo语言最基本的一点在于它是基于事件(event)的,当某个事件发生的时候,才会执行相应的动作。而在什么时候需要采取什么样的事件,这又是和Lingo脚本的类型有关的。
Lingo的脚本类型通常分为frame脚本、sprite脚本、cast脚本和movie脚本,区分这些脚本类型的方法就是看这些脚本写在什么位置上。一般来讲,frame脚本写在帧上,Sprite脚本写在Sprite上,Cast脚本写在Cast上,而Movie脚本写在电影中,不依靠任何其他帧和角色。
2多媒体中的图文滚动控制实现

2.1问题的提出

在利用Director制作多媒体课件时,时常会遇到某个界面插入选定图片,或者某个界面插入文字。一般情况是,在某个界面插入文字时只需要插入提纲性的文字即可。但是,在具体教学中,有可能需要使用大篇幅的文字来阐述说明一个问题,这时可通过“Text- Framing- Scrolling”的设置,以滚动文本的形式在特定区域内显示。
这里,可以看到,实现后的文本形式并不符合个性化多媒体设计的需求,利用系统提供的方式不能实现同一界面既插入图片又插入文本,而且界面生硬,功能实现比较单一。我们需要实现的则是既有图片又有文字的界面,而当全部图文长度超出显示框区域时,又需要图文仅仅只在显示框区域显示,这就需要对图文进行滚动控制。

2.2图文界面的设计

上述需求在界面上的实现,我们采用遮罩的方式。首先,制作一个与背景相一致的界面,以遮挡图文超出显示区域部分;其次,将遮罩界面上显示图文的区域镂空,制作成透明区域,以显示图文;然后,设计制作出个性化滚动条,以控制图文的滚动显示。
在Director中导入精灵元素,并将精灵放置到剪辑室的通道中,此时应注意剪辑室中各个精灵所在通道的顺序,如图1所示。
针对界面上的元素实现对图文的滚动控制,主要是通过上下按钮、滚动浮标精灵来实现。
1)初始化上下按钮
property pButton--按钮精灵
property pButtonLocv --按钮精灵原始位置
property pMode--按钮是向上还是向下
property pDown--按钮是否按下
2)初始化滚动浮标
property pButtonSpriteNum --浮标通道号
property pHeight--浮标的高度
property pBili--移动比例
global pHow--实际比例
property pposition--鼠标按下的状态
3)初始化图文精灵
property pSprites--图文精灵列表
property pSpritesLocv --图文精灵原始位置
property pLength--图文移动的距离

2.3图文界面滚动的控制实现

2.

3.1鼠标对滚动浮标的拖动实现

实现代码: on exitframe me
if pposition then
sprite(me.spritenum).locv = the mouseV
pHow=float(the mouseV- sprite(pBarNumber).rect.top)/sprite(pBarNumber).rect.height
if pHow > 1 then
pHow = 1
end if
if pHow <0 then
pHow = 0
end if
changeloc(pHow)
end if
end exitframe
脚本中对于滚动浮标的移动范围进行了控制,避免了滚动浮标移动的范围超出滚动条的长度。

2.

3.2与滚动浮标相对应的图文滚动实现

实现代码: pSpriteslocv =[]
i = 1
repeat while (i <= pSprites.count)
add pSpriteslocv ,sprite(pSprites[i]).locv
i = i+1
end repeat
通过获取的图文精灵通道号及其原始位置,根据pHow的值通过函数changeloc()控制图文的移动。

2.

3.3上下按钮功能的实现

实现代码: on exitframe me
if pDown then
if pMode = "up" then
pHow = pHow - pBili --减少pHow
else if pMode = "down" then
pHow = pHow + pBili --增加pHow
end if
if pHow<0 then pHow = 0
if pHow>1 then pHow =1
sendsprite(pButtonSpriteNum,#changeloc,pHow)
end if
end exitframe
在上下按钮功能的实现过程中,滚动浮标和图文位置的改变是通过调用滚动浮标上的changeloc函数来实现的。
3结束语
目前,制作多媒体课件的软件很多,而且各软件又各具特色,由于Lingo语言的引入,使得Director具备了强大的集成功能和交互功能。该文对Lingo语言的应用也仅限于初步探讨阶段,但其应用的多面性和广泛性使得Director在多媒体制作软件中占据了重要地位。
参考文献:
卢诗骄.Director11.5

源于:大学生毕业论文www.udooo.com

制作基于lingo语言的嵌入式音频[J],计算机光盘软件与应用, 2011(21),140-141.
金晖.基于Director的电子杂志的设计与制作[J],科技信息,2011(25).
[3]郭新房,何方.Director 11交互式多媒体开发标准教程[M],北京:清华大学出版社,2009
[4]张豪,何方.Director交互式多媒体开发从新手到高手[M],北京:清华大学出版社,2009.

copyright 2003-2024 Copyright©2020 Powered by 网络信息技术有限公司 备案号: 粤2017400971号