cocos2d-x的UI控件相对布局后LayoutParameter会使Position定位无
如果要用代码控制一个在相对布局Panel里的UI控件的Position位置,那么只能用修改其LayoutParameter的方法才行,普通的setPosition()不起作用: node:getLayoutParameter():setMargin({ left = 0,right = 0,top = 0,bottom = 0}) 注意,必须是调用setMargin()方法才行,而像 修改LayoutParameter的margin虽然能够重新定位UI控件了,但如果要给这个UI控件的移动做一个动画的话还是不行,因为MoveTo Action的本质还是设置position值。解决办法只能是在Cocos Studio里将Panel设置为绝对定位而不是相对定位了。 工作流程是:
之所以这么绕,是因为cocos2d-x动画的动作必须是事先指定好的(如MoveTo、ScaleBy等),而不像UIKit的[UIView animationWithDuration:...]方法那么聪明,能够自动识别所有绘画层的变化。 总结:相对定位的控件没法做基于Position位置的动画,必须改为绝对定位。在不用百分比做多分辨率适配的情况下,一般在Cocos Studio里先用相对定位设置好控件位置,再改回绝对定位也不会有什么问题。(我没试过如果用百分比做多分辨率适配再改回绝对定位会不会有问题。) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |