A
Another_eYes
Unregistered / Unconfirmed
GUEST, unregistred user!
在动画中想要不闪烁,
1.最好不要使用xxx.Canvas. (尤其是这个xxx直接放在form上而不是在某个size很小
的panel或其它TWinControl上).
2. 刷新最好不要使用Invalidate, Refresh, Repaint这类方法, 而是最好用InvalidateRect
这个API并指定具体大小的Rect, 而且需要将其中的Erase参数设置成False(这样做
的前提是你已经保存了需要刷新部分的背景或者这个背景本身是个单一色彩区域, 在
刷新时只需要简单FillRect即可)
3.绝对不要用TImage作为动画的背景或动画本身控件. 如果一定要用Image作为放置
背景的容器 , 刷新时也绝对不要使用Image.Picture.Canvas, 而应该直接使用其parent
的Canvas.(如果一定要用Canvas的话)
以上只是个人之见(我的经验)
1.最好不要使用xxx.Canvas. (尤其是这个xxx直接放在form上而不是在某个size很小
的panel或其它TWinControl上).
2. 刷新最好不要使用Invalidate, Refresh, Repaint这类方法, 而是最好用InvalidateRect
这个API并指定具体大小的Rect, 而且需要将其中的Erase参数设置成False(这样做
的前提是你已经保存了需要刷新部分的背景或者这个背景本身是个单一色彩区域, 在
刷新时只需要简单FillRect即可)
3.绝对不要用TImage作为动画的背景或动画本身控件. 如果一定要用Image作为放置
背景的容器 , 刷新时也绝对不要使用Image.Picture.Canvas, 而应该直接使用其parent
的Canvas.(如果一定要用Canvas的话)
以上只是个人之见(我的经验)