在Multimedia Builder中制作滚动图像(下)
三、滚动多行
所谓滚动多行只是出于我们的列表太长时的一种方便措施,如果软件列表不是很长的话,它就不是必需的。滚动多行要另外自制一组上下滚动按钮,以向下连续滚动
5行为例,脚本可以这样编写(脚本中的的变量可以参考文章的上半部分):
if (menu_y> -694) then
menu_y=menu_y-210
if (menu_y<-694) then
menu_y=-694
end
MoveTo("menu","232,menu_y,30")
end
第二行定义菜单 menu_y 值上移 5行(42*5);之所以在脚本内部又嵌套一个条件判断,是因为在第一个条件满足的情况下连续滚动
5行仍然有可能出现超出边界。同理,向上连续滚动的脚本应该是:
if (menu_y< 146) then
menu_y=menu_y+210
if (menu_y>146) then
menu_y=146
end
MoveTo("menu","232,menu_y,30")
end
四、滚动状态指示
所谓滚动状态指示就是类似于滚动条的一个指示器,可以使我们直观地看到当前软件列表图像滚动的百分.比。说到这里大家可能明白,这东西需要通过计算才能得出来。在我的制作中窗口的尺寸结构是如右图这样的:
首先我们可以计算出滚动图像的坐标变化值:
146 - ( -694 ) = 840
那么就可以算出它和小窗口的滚动比例值,因为滚动指示是在小窗口反映出来的。 比值为:
264 / 840 约为 0.314
那么,一个可以在小窗口中反映出滚动图像比例的Y坐标值就可以计算出来:
145 + (滚动图像当前Y值-146) x 比值
我们就是通过这个值来实现滚动状态的显示。具体方法是在 MMB 中使用矩形工具在滚动图像右侧绘制一个很小的矩形,然后在前面的每个滚动脚本中的menu_y
计算后加入以下两行:
rool_y=(ABS(menu_y-146)*0.314)
MoveObject("rool","553,145,7,rool_y")
其中,第二行的"553,147"是指滚动指示器的左上角坐标,后面的 "7"是矩形的宽度值。下图是滚动到不同位置的显示结果.:
制作到这里,你可能想是否可以像真正的滚动条一样,通过鼠标拖动滚动条来控制图像滚动,应该是可以的。但也应看到目前
MMB 提供的脚本语言功能还十分有限,要实现这个功能的话,单纯通过脚本可能要费一番周折。不过你要是做出来别忘记来信告诉我。
作者:Zhangcs