2013-03-22 147 views
2

我试图改变鼠标指针鼠标悬停图像的图像,这里是我的脚本:KineticJS鼠标悬停

   var sc = new Kinetic.Layer(); 
       var sCircle = new Image(); 
       var sCircleImage; 
       sCircle.onload = function() { 
        sCircleImage = new Kinetic.Image({ 
         x: 186.183, 
         y: 185.89, 
         width: 142.114, 
         height: 140.22, 
         image: sCircle 
        }); 
        sc.add(sCircleImage); 
        sc.draw(); 
       }; 
       sCircle.src = '../../Content/images/arrow_circle.png'; 



       sCircleImage.on('mouseover', function() { 
       document.body.style.cursor = 'pointer'; 
       }); 
       sCircleImage.on('mouseout', function() { 
       document.body.style.cursor = 'default'; 
       }); 

我收到以下错误:无法获取的未定义或空引用“上”属性。我希望你的建议。提前致谢。

回答

3

在图像加载函数内部使用mouseover和mouseout函数。 请尝试下面的代码

<!DOCTYPE HTML> 
<html> 
<head> 
    <style> 
     body 
     { 
      margin: 0px; 
      padding: 0px; 
     } 
    </style> 
</head> 
<body> 
    <div id="container"> 
    </div> 
    <script src="http://www.html5canvastutorials.com/libraries/kinetic-v4.3.0-beta2.js"></script> 
    <script> 
     var stage = new Kinetic.Stage({ 
      container: 'container', 
      width: 578, 
      height: 200 
     }); 
     var sc = new Kinetic.Layer(); 
     var sCircle = new Image(); 
     var sCircleImage; 
     sCircle.onload = function() { 
      sCircleImage = new Kinetic.Image({ 
       x: 186.183, 
       y: 185.89, 
       width: 142.114, 
       height: 140.22, 
       image: sCircle 
      }); 
      sc.add(sCircleImage); 
      sc.draw(); 
      stage.add(sc); 
      sCircleImage.on('mouseover', function() { 
       document.body.style.cursor = 'pointer'; 
      }); 
      sCircleImage.on('mouseout', function() { 
       document.body.style.cursor = 'default'; 
      }); 
     }; 
     sCircle.src = '../../Content/images/arrow_circle.png'; 
    </script> 
</body> 
</html> 
+0

非常感谢,它工作得很好。 – hncl 2013-03-22 15:33:24