0

我使用 drawImage() 在画布上绘制了一个法师,并将其可见性设置为 false,我希望它在单击和鼠标悬停时可见。我该怎么办 ?谢谢

这是我到目前为止所写的,但这当然行不通

$('#scene').drawImage({

            source:'files/gp/js/bigview/avg/aileav.png',
            name:'aileavg',
            x:198,
            y:76,
            width:110,
            height:106,
            fromCenter: false,
            layer: true,
            visible:false,              
            click:function(layer){
                visible:true
                }

    })  
4

2 回答 2

0

画布不是那样工作的。画布不是对象容器。它就像……嗯……画布。当您将图像绘制到画布上时,它不再是图像,而是开始成为像素的集合。

当您希望某些东西从画布上消失时,您必须通过用其他东西对其进行重绘来擦除它,或者通过擦除整个画布并重新绘制除该对象之外的所有内容。

于 2014-08-03T01:26:27.313 回答
0

在 jCanvas 中,使用该visible属性禁用图层可见性将阻止该图层被绘制(从而阻止它响应鼠标事件)。

如果您希望图层呈现为不可见但仍响应事件,则该opacity属性是理想的解决方案。您应该使用该setLayer()方法来更新opacity属性的值(将其设置为0将使图像不可见)。请注意,您需要在drawLayers()之后调用该方法才能在画布上呈现此更改。

$('#scene').drawImage({

    source: 'files/gp/js/bigview/avg/aileav.png',
    name: 'aileavg',
    x: 198,
    y: 76,
    width: 110,
    height: 106,
    fromCenter: false,
    layer: true,
    opacity: 0,          
    click: function (layer) {
        $(this).setLayer(layer, {
            opacity: 1
        })
        .drawLayers();
    }

});
于 2014-10-10T00:51:34.003 回答