##问题如下:
###预制体p里面有个精灵,代码里创建一个p后先调用p的initP方法,进行传参初始化,并设置p里面的精灵a的大小,然后再把p添加到场景上,发现a的大小设置无效。而创建p后先加到场景上再设置p的大小就有效了。即:在精灵没有调用自己的onLoad方法前无法设置自己的大小。而缩放是什么时候设置都有效果。
你发一下 Demo 给我吧,我这边测试出来的原因是因为你 Prefab 中的 Sprite 的 SizeMode 是 Trimmed 的所以就算你修改了以后他还是会自动变成原本 SpriteFrame 原始的大小。
顺序是这样的
1.修改大小 -> 加载到场景会初始组件( 由于是 Trimmed 模式所以会自动修改为 图片原始大小)(不成功)
2.加载到场景会初始化组件 -> 修改大小 (成功)
onLoad之前设置color也无效,你可以测试下。
能否详细说明一下,我这边测试了,是可以修改颜色的…
不用prefab,直接在代码里创建的怎么弄?
var node = new cc.Node();
var sp = node.addComponent(cc.Sprite);
sp.spriteFrame = this.spr;
node.x = 100;
node.y = 100;
** node.width = 100;**
** node.height = 100;**
node.parent = this.node;
把设置宽高放到最下面才有效,这样无效。按正常逻辑来说,一旦我手动修改了节点的大小,SizeMode就应该自动改成Custom了吧?因为我修改了节点大小意图很明显啊。
嗯,这个没问题会进行修改,但是你 color 的情况是如何产生的?我这边无法重现