Состояние прокрутки Adobe Animate CC WebGL

Я создаю холст WebGL и пытаюсь использовать фрагмент onmousemove для создания ролловера для кнопки мувиклипа.

Сначала я установил невидимое состояние прокрутки кнопки, например:

this.YesHOT.setVisible(false);

Затем я использую функцию onmousemove, чтобы сделать ее видимой, когда она находится над кнопкой, например так:

canvas.onmousemove = function(e) { 
    var boundingRect = this.Yes.getBounds(this);
    if(isMouseOverSymbol(e.offsetX, e.offsetY, boundingRect)) {    
        this.YesHOT.setVisible(true);
    }
}.bind(this);

//Function to check whether the specified point lies within the rect.
function isMouseOverSymbol(pointX, pointY, rect) {
    if(rect.left <= pointX && pointX <= rect.left + rect.width)
        if(rect.top <= pointY && pointY <= rect.top + rect.height)
            return true;
    return false;
}

Это работает, но тогда состояние прокрутки остается видимым и не отключается. Как сделать так, чтобы он выключился?


person Mark Bauer    schedule 18.06.2016    source источник


Ответы (1)


На самом деле вы никогда не звоните this.YesHOT.setVisible(false). Если я понял ваши намерения, код должен быть примерно таким:

canvas.onmousemove = function(e) { 
    var boundingRect = this.Yes.getBounds(this);
    // if mouse cursor is over the "hot" area, show effect. Otherwise hide.
    this.YesHOT.setVisible(isMouseOverSymbol(e.offsetX, e.offsetY, boundingRect));
}.bind(this);

// also hide the effect when mouse completely leaves the canvas
canvas.onmouseleave = function () {
    this.YesHOT.setVisible(false);
}.bind(this);
person Kirill Dmitrenko    schedule 18.06.2016