白鹭对包含多个图片子对象透明度更改

直接更改透明度

对包含多个子对象叠加,修改node.alpha可以自动遍历每个子对象去调节透明度。这样的修改方式简单,但是会导致子对象之间会有穿透现象,你会看到一个对象遮挡后面的图片的轮廓。尤其在龙骨动画中,你并不想让人看到被遮挡的胳膊吧---这又不是拍x光片。

使用ColorMatrix滤镜

代码我放到这里,直接调用函数输入值为0~1即可,对node调节能够更改整体的透明度,像渐隐渐现一样。

代码植入

// 透明滤镜
private colorMatrixFilter:egret.ColorMatrixFilter;
private alphaPlusVal:number = 1;
private colorMatrix = [
   1, 0, 0, 0, 0,
   0, 1, 0, 0, 0,
   0, 0, 1, 0, 0,
   0, 0, 0, 1, 0
];

public get alphaPlus():number{
   return this.alphaPlusVal;
}
public set alphaPlus(val:number){
   //let ap = Math.max(Math.min(val,1),0);
   if(this.alphaPlusVal==val){
       return; 
   }
   if(val==1){
       this.alphaPlusVal = val;
       this.filters = null;
       return;
   }
   this.alphaPlusVal=val;
   this.colorMatrix[18] = this.alphaPlusVal;
   if(!this.colorMatrixFilter){
       this.colorMatrixFilter = new egret.ColorMatrixFilter(this.colorMatrix);
   }else{
       this.colorMatrixFilter.matrix = this.colorMatrix;
   }
   this.filters = [this.colorMatrixFilter];
}

调用方法

this.alphaPlus=.5;

改良后可使用tween

egret.Tween.get(this).to({
    alphaPlus: 0
}, 300).call(() => {
})

效果

两种方法比较


使用透明度设置方式
使用滤镜方式

能明显看到用透明度方式简单粗暴,会看到角色的卤蛋,假发,胳膊身体,没有完整感.

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,056评论 3 119
  • 我看向窗外,灯一盏盏熄灭,才知道,天快亮了。原来,并不是点起烛火才是幸福 不知道该说早安还是晚安,可...
    圆子圆圆阅读 3,733评论 0 50
  • 整理好的房间转眼就被我随手放的东西填满了,越来越乱,终于无法忍受,趁着今天比较空,大收拾改造了一番,果然...
    人间清欢有味阅读 1,351评论 0 0

友情链接更多精彩内容