嘛要不是最近搞些诡异的实验应该不会注意到吧.
使用image left= top=和使用locate x= y=,
假如消息层的窗口大小等于游戏窗口,理论上说,这两个显示位置应该是一样的.
实际上,用按钮实验的话也是如此.
但是,假如使用locate定义滑动条的位置,就会发现滑动条本体比同样位置的图片低5-6象素.
如上图红色部分是使用image显示滑动槽底图,灰色部分则是slider的base实际显示位置.
因为按钮本身位置是正确的所以可以确认消息层大小没有问题,应该是在于slider的描绘.
但是查看了一下相应的sliderlayer.tjs,发现那里的描绘是以base(滑动槽底图)为基准的,开始描绘位置也是0,0...
那么这个5象素左右的错位究竟是怎么造成的...疑惑中...
接着在很无聊的情况下去翻messagelayer...
把MessageLayerOverride.tjs的2470行改成了
object.setPos(cx + lineLayerOriginX + getLineLayerLeftOffset(),
lineLayerOriginY + getLineLayerTopOffset());
即是不加那个cy,顶头显示...结果变成了比一般图片高5象素的错位...=_=
最后...改成:
object.setPos(cx + lineLayerOriginX + getLineLayerLeftOffset(),
cy/2 + lineLayerOriginY + getLineLayerTopOffset());
不再错位了...不过...没有经过更多实验,不知道具体算不算解决了...