2016-06-18 12 views
1

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

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

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; 
} 

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

ответ

0

Вы никогда не делаете звонок 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); 

 Смежные вопросы

  • Нет связанных вопросов^_^