2013-09-30 65 views
0

我不明白,爲什麼eventlistener(從演示中複製)不起作用,如果我將位圖添加到舞臺上。看起來位圖會導致問題,因爲如果我添加另一個圓圈等,點擊工作正常。當位圖添加到階段時,Easeljs addEventListener不起作用

見例如:

<!DOCTYPE html> 
<html> 
<head> 
    <title>EaselJS demo: Simple animation</title> 
    <link href="../_shared/demo.css" rel="stylesheet" type="text/css"> 
    <script src="http://code.createjs.com/easeljs-0.7.0.min.js"></script> 
    <script>  
     var stage, circle; 
     var counter = 0; 
     var ticounter = 0 
     var images = [] 
     var mytext = 'kk'; 
     var lepakko; 
     var mx = 0; 
     function init() { 
      stage = new createjs.Stage("demoCanvas"); 

      var circle = new createjs.Shape(); 
      circle.graphics.beginFill("red").drawCircle(0, 0, 50); 
      circle.x = 500; 
      circle.y = 500; 

      stage.addChild(circle); 
      stage.update(); 
      lepakko = new createjs.Bitmap("halloween-bat.png"); 

      //Click works, if line below is commented out, why? 
      //stage.addChild(lepakko); 



      circle.addEventListener("click",circle_event); 
      stage.update(); 
     } 

     function circle_event(event) { 
      alert("clicked"); 
      }; 
    </script> 
</head> 
<body onLoad="init();"> 
    <canvas id="demoCanvas" width="700" height="700"> 
     alternate content 
    </canvas> 
</body> 
</html> 
+0

您的位圖可能非常大並覆蓋圓圈?先嚐試添加位圖,然後再添加圓,看看是否有效。 – olsn

+0

位圖不是很大,它不覆蓋圓圈。它似乎以某種方式破壞了圈子的事件調度員。這是一個錯誤還是我做錯了什麼? –

+0

您是否嘗試過先添加位圖,然後再添加圓圈? – olsn

回答

1

的點擊不應該被默認工作。 EaselJS庫需要顯式啓用mouseover事件。您需要添加:

stage.enableMouseOver(20); 

創建階段後。要改變光標指針,當它在對象上有一個名爲光標EaselJS屬性:

// doesn't work, even if a function is decleared outside 
// circle.addEventListener("mouseover", function() { document.body.style.cursor = "pointer"; }); 
// this works 
circle.cursor = "pointer"; 

方法enableMouseOver被記錄在EaselJS website。請注意,在EaselJS中偵聽mouseover和其他事件對Web瀏覽器的要求更高。