2015-02-06 2 views
2

다트와 StageXL을 사용하여 MouseClick 이벤트에 반응하는 캔버스에 상자를 만들려고합니다. 다음과 같이 내 코드입니다 : 내가 성공하지 않고 모두 on(MouseEvent.CLICK).listen(react);addEventListener(MouseEvent.CLICK, react);을 시도했습니다 아무 반응이없는StageXL MouseEvent not working

import 'dart:html' as html;  
import 'package:stagexl/stagexl.dart' as sxl; 

void main() { 

    var canvas = html.querySelector('#canvas'); 
    setCanvasFullScreen(canvas); 

    var stage = new sxl.Stage(canvas); 
    var renderLoop = new sxl.RenderLoop(); 
    renderLoop.addStage(stage); 

    var rect = new sxl.Shape(); 
    rect.graphics.rect(80, 50, 100, 100); 
    rect.graphics.fillColor(sxl.Color.Crimson); 

// rect.on(sxl.MouseEvent.CLICK).listen(react); 
    rect.addEventListener(sxl.MouseEvent.CLICK, react); 
    stage.addChild(rect); 

}//end main 

void react(sxl.MouseEvent event){ 
    var w = html.window; 
    w.alert("I'm clicked!"); 
}//end onClick 


void setCanvasFullScreen(canv) { 
    var w = html.window; 
// w.alert("Holla!!!"); 
    int _width = w.innerWidth as int; 
    int _height = w.innerHeight as int; 
    canv.setAttribute('width', '$_width'); 
    canv.setAttribute('height', '$_height'); 
} 

. Dart Editor & SDK 버전 1.8.5를 사용하고 있으며 기본 Dartium 브라우저에서 디버깅 중입니다.

도움을 주시면 감사하겠습니다.

답변

1

인터넷에서 검색 한 결과 StageXL 포럼의 link이 제대로 작동하지 않는 이유를 적절하게 설명하는 것으로 나타났습니다.

var rect = new sxl.Shape(); 

로 : 그래서 라인을 변경했습니다

var rect = new sxl.Sprite(); 

그것은 잘 반응한다.
누군가에게 도움이되기를 바랍니다.