荔园在线
荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀
[回到开始]
[上一篇][下一篇]
发信人: hellrock (地狱乐队I~地狱之王), 信区: Multimedia
标 题: 关于Director中Text Scroll的问题
发信站: BBS 荔园晨风站 (Fri Dec 15 19:57:06 2000), 转信
有一个朋友在论坛上问如何让一个Text Sprite自动滚屏?还有一个要求是,当滚动到
文本的最后一行,可以再回到第一行重新继续滚动,另外还要求如果鼠标点在文本上就
停止滚动,再点击又继续滚动。
回答:
这是一个很有趣的问题,Lingo的语句并不难,需要了解的是一些背
景知识和解决问题的过程。事实上,Lingo Programming的过程就是解决问题的过程,对
于解决问题来说,第一步莫过于定义问题是什么?从上面的问题里我们已经了解得比较
清楚了,下面是问题清单:
1. Text sprite 自动滚屏;
2. 当滚动到最后一行时回到第一行重新开始滚动;
3. 鼠标点击Toggle滚屏的on和off。
我们知道,Text Member可以有几种不同的Framing设定,对于滚屏
来说,最合适的设定是Fixed.见左图:
这样可以将比较长的文件限制在有限的舞台空间来显示,同时又不
出现滚动条。不过这只完成了第一步,我们需要Lingo把文本文件滚动起来。最合适的的
语句是用scrollTop这个Text Member的属性。它的定义是从Member的顶端到第一行可见
文字的距离,当Movie播放时,我们都会使用on exitFrame句柄来制造循环。好, 如果
我们可以让这个Text Sprite在每次离开Frame时,它的member.scrollTop值就增加一点
,不就实现了滚动了吗。
member.scrollTop=member.scrollTop + 4
这就是核心语句。那么如何得知文本最后一行闹噶?
on exitframe me
if pFlag=1 then
pCurrentTop=pText.scrollTop
if pCurrentTop < pLastLine then
scrollText me
else
pCurrentTop=0
scrollText me
end if
end if
end
--核心语句使text滚动
on scrollText me
pText.scrolltop=pCurrentTop + pSpeed
updatestage
end
--toggle flag on and off
on mouseDown me
pFlag=not pFlag
end
on getPropertyDescriptionList me
return [#pSpeed:[#comment:"滚动速度: ",#format:#integer,
#default:"2"],\
#pFlag:[#comment:"自动开始滚动?",#format:#boolean,#defa
ult:"1"]]
end
左图是当用该行为对text sprite赋值时的screen shot:
你也可以写Behavior了吧。
--
魔岩设计工作室-Rock Studio*[0
※ 来源:·BBS 荔园晨风站 bbs.szu.edu.cn·[FROM: bbs.stu.edu.cn]
[回到开始]
[上一篇][下一篇]
荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店