标题: sliderLayer,高度5象素左右的错位?
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2009-3-20 11:04  资料  短消息  加为好友 
sliderLayer,高度5象素左右的错位?

嘛要不是最近搞些诡异的实验应该不会注意到吧.
使用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());

不再错位了...不过...没有经过更多实验,不知道具体算不算解决了...





顶部
sarah707
亲友
Rank: 2


UID 15
精华 3
积分 825
帖子 366
阅读权限 50
注册 2006-12-20
 
发表于 2009-3-20 18:14  资料  短消息  加为好友 
因为cy = lineLayerBase - lh,所以是不是跟字号有关的……因为是从底边算的,就像文字描绘的时候一样,文字也不是从0,0写的,而是从底面计算的……
不过我也没仔细看就是了……你不说我都没注意过这个有偏差……远目……

顶部
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2009-3-20 18:40  资料  短消息  加为好友 
=.=lineheight是行高来着没错,这么说的确有可能和字号有关...不过不管怎样都是错位的...所以暂时先这么改着吧...我也懒得仔细去查了...只要编辑器显示效果和实际系统没有差别很大就行...





顶部
全局变量D
亲友
Rank: 2



UID 14
精华 1
积分 1262
帖子 719
阅读权限 50
注册 2006-12-20
 
发表于 2012-8-9 15:00  资料  短消息  加为好友 
问题解决:
是slider本身莫名其妙存在一个叫fixpos的功能会改变slierlayer的位置。
在TAG里加上如下属性即可保证位置显示和设定相同
nofixpos=true





顶部
 



清除 Cookies - 联系我们 - [Key Fans Club] the Council of Doujin-game Development and Promotion - Archiver - WAP
Powered by Discuz! 5.5.0 © 2001-2006 Comsenz Inc.
Processed in 0.026163 second(s), 10 queries , Gzip enabled
粤ICP备05060595号
[ 当前模板 - 天高云淡 v 设计制作 - 七星论坛 v 请使用1024*768或以上分辨率浏览本模板 ]
请勿删除或修改此处版权图示