【疑似bug】node.attr() 方法无效

1.6.1正式版

使用node.attr方法设置节点的属性无效

let x = cc.find(‘Canvas/node’);
x.attr({x: 300, y:200});
cc.log(x.getPosition());

而且,使用attr后,再直接修改节点属性仍然无效:
let x = cc.find(‘Canvas/node’);
x.attr({x: 300, y:200});
cc.log(x.getPosition());

x.x = 300; //无效,去掉前面的attr方法,则有效
cc.log(x.getPosition());

难道这么简单的方法还有什么使用上的技巧?
大家都不用这个方法吗,貌似论坛里没有相关问题,还是大家都知道怎么用?

attr这个应该是添加自定义属性的,而x、y是本身就有的,本人猜测Creator应该对x、y做了setter/getter封装,所以,当你调用attr设置了这些已有属性后,对应的封装应该失效了~~~

顶下。。。。。。。。。。。。。。

你cc.find找到是个node,本来就带有.x 和.y的属性.直接修改.x和.y的值就可以了.

没必要用到attr()…

没明白你的意图…

谢谢反馈,是 bug,目前你这样写的话,引擎 x 和 y 原先是 getset,结果就会被覆盖掉变成普通的数字

我反馈的bug命中率很高啊。:grin:

1赞

经测试,这个bug没有修复, @jare

1.7.0 beta5

我没有说有修复啊……