我正在尝试更新画布元素的globalAlpha。画布包含一个图像和两个文本。我在底部显示代码。
我想在之后将globalAlpha属性从0.6更改为1。我怎样才能在考虑到表演的情况下做到最优雅呢?

        var ctx = canvasElement.getContext("2d");
        ctx.globalAlpha = 0.6;

        //background gradient
        var gradient = ctx.createLinearGradient(0, 0, 0, options["height"]);
        gradient.addColorStop(0, options["colorStop0"]);
        gradient.addColorStop(1, options["colorStop1"]);
        ctx.fillStyle = gradient;
        ctx.fillRect(0, 0, options["width"], options["height"]);

        //program
        ctx.font = options.programText["font"];
        ctx.fillStyle = options.programText["color"];
        ctx.fillText(prog.title, options.programText["x"], options.programText["y"]);

        //channel number
        ctx.font = options.channelNumber["font"];
        ctx.fillStyle = options.channelNumber["color"];
        ctx.fillText(item_index + 1, options.channelNumber["x"], options.channelNumber["y"]);

        //channel logo
        var channelLogo = new Image();
        channelLogo.onload = function () {
            var clX = options.channelLogo["x"];
            var clY = options.channelLogo["y"];
            ctx.drawImage(channelLogo, clX, clY, channelLogo.width, channelLogo.height);
        };
        channelLogo.src = this.getChannelLogo(channel);

最佳答案

只需进行像素操作,就可以在绘制后更新画布。
使用画布上下文的getImageData&putImageData方法。
但没有任何方法像画布上下文的“changeAlpha(x,y,width,height,alphaValue)”。
我的应用程序也面临同样的问题。

10-02 12:01