TiledLayer中设置子物体的opacity不生效

使用addUserNode将某node添加到TiledLayer之后,需要设置node的opacity属性,但是没有任何效果,使用color有效果。

例子:伪代码如下
let mTiledLayer:cc.TiledLayer;
let itemNode:cc.Node;
this.mTiledLayer.addUserNode(this.itemNode);
this.itemNode.opacity = 50; // 无效
this.itemNode.color = cc.Color(255,255,255,50); // 有效

cocos creator 2.4.3版本, win10系统

求大佬、官方来给回复下

顶顶顶,求大佬、官方来给回复下

顶顶顶,求大佬、官方来给回复下

顶顶顶,求大佬、官方来给回复下

顶顶顶,求大佬、官方来给回复下

顶顶顶,求大佬、官方来给回复下

顶顶顶,求大佬、官方来给回复下

this.mTiledLayer.node.addChild(this.itemNode);
用这个看看

这种方式的话,就没办法使用TiledLayer的自动分层显示了

let tiled = layer.getTiledTileAt(mPos.x, mPos.y, true);
tiled.node.addChild(cNode);
这个办法

位置不是固定的

一批动态的人物会在这个层上显示,人物会移动,会相互遮挡。

let c = this.itemNode.color;
c.a = 50;
this.itemNode.color = c;

那这样绕过吧 :joy:

现在就是这样用的,但是cocos报警告,不让这样用

实际是要对node做一个闪烁的效果,就是控制透明度的变化。

用tween控制的color或者opacity变化的

this.mFlashTween = cc.tween(node)

    .to(1, {color:cc.color(255, 255, 255, 50)})

    .to(1, {color:cc.color(255, 255, 255, 255)})

    .call(()=>{

        

    })

    .start();

这样控制不了是吧