主题:  关于文本滚动的问题

skys

职务:普通成员
等级:1
金币:0.0
发贴:94
注册:2000/12/21 16:20:28
#12001/1/11 17:38:06

引用:

Director技巧--关于text scroll 的问题
作者:Flyingbird 摘自经典论坛
有一个朋友在论坛上问如何让一个text sprite 自动滚屏? 还有一个要求是,当滚动到文本的最后一行,可以再回到第一行重新继续滚动, 另外还要求如果鼠标点在文本上就停止滚动,再点击又继续滚动。

property pText --文本member
property pSpeed --滚动速率
property pFlag --判断条件
property pLastLine --scrollTop的极限值
property pCurrentTop --当前的scrollTop值

--初始化
on beginSprite me
sprite(me.spriteNum).member.scrolltop=0
pText=sprite(me.spriteNum).member
pLastLine=pText.height - sprite(me.spriteNum).height
end

--循环中监测符合滚动的条件并发出滚动的指令
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,#default:"1"]]
end




这段语句实现循环滚动是从文本框的顶部开始,给人有视觉上很突然的感觉。我现在想从文本框的底部开始循环,但是修改程序后发现变量“PTEXT.SCROLLTOP”不能为负值。只好用苯办法在文本行前加一段空白段来实现。请问那位知道正确的修改办法?



Call Me Simon

职务:普通成员
等级:2
金币:2.0
发贴:646
注册:2000/9/19 13:56:51
#22001/1/11 19:05:15
skys在上个贴子中说
引用:

...只好用笨办法在文本行前加一段空白段来实现。请问那位知道正确的修改办法?


你的方法就是正确而又聪明的做法。



cizi3000

职务:普通成员
等级:1
金币:1.0
发贴:166
注册:2001/1/8 23:17:38
#32001/1/15 23:04:57
好象scrolltop可以为负值!


我喜欢lingo!



coo

职务:普通成员
等级:1
金币:0.0
发贴:163
注册:2001/4/6 16:48:24
#42001/5/21 13:51:13
为什么文本没有移动到末尾就停止了,通过跟踪运行,发现好象
pText.scrolltop=pCurrentTop + pSpeed
失效了,很奇怪,那位指点?

此时 pCurrentTop < pLastLine 仍然成立