美文网首页
白鹭对包含多个图片子对象透明度更改

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

作者: Zszen | 来源:发表于2018-11-14 18:52 被阅读34次

直接更改透明度

对包含多个子对象叠加,修改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(() => {
})

效果

两种方法比较


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

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

相关文章

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

    直接更改透明度 对包含多个子对象叠加,修改node.alpha可以自动遍历每个子对象去调节透明度。这样的修改方式简...

  • python图片-4-subplot函数

    matplotlib下, 一个 Figure 对象可以包含多个子图(Axes), 可以使用 subplot() 快...

  • iOS开发OpenGL ES - 透明度、混合和多重纹理

    透明度*纹理中可以使用个包含透明度元素的GL_RGBA格式来指定每个纹素的透明度。通常一个或者更多个纹素会结合灯光...

  • python matplotlib模块: Subplots(在同

    我们使用subplot可以实现在同一个figure对象下绘制多个图像:figure对象: 每一个这样的图都包含唯一...

  • JSON对象

    对象语法 实例: 对象可以包含多个key/value(键/值)对。key必须是字符串,value可以是合法的JSO...

  • 【QNX】pps开发指南(5):订阅

    第五章:订阅 PPS客户端可以订阅多个对象,而PPS对象也可以有多个订阅者。当发布者更改了一个对象时,订阅了该对象...

  • JSON语法

    1.数据在名称/值对中 2.数据由逗号分隔 3.大括号保存对象,对象可以包含多个key/value(键/值)对 4...

  • Linux基础-初级指令

    Linux指令的通用格式 #指令主题 [选项] [操作对象] 一个指令可以包含多个选项和多个操作对象 #是在书写的...

  • 【五十九,模型加载-6 模型】

    Model 一个模型可以包含多个网格,一个网格可能带有多个对象,Model类的结构如下: Model类包含一个Me...

  • 不可更改的对象

    如果一个对象的状态在它构建之后就不能被更改,我们就认为它是不可更改的对象。对不可更改对象的最大限度的依赖被广泛认为...

网友评论

      本文标题:白鹭对包含多个图片子对象透明度更改

      本文链接:https://www.haomeiwen.com/subject/hwtsfqtx.html