2013-09-30 2 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); 

을 추가해야합니다.

// 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의 속성이있을 때 포인터에 커서를 변경합니다. EaselJS에서 마우스 오버 및 기타 이벤트를 청취하는 것은 웹 브라우저에 훨씬 더 많은 요구 사항입니다.