StageXL MouseEvent无法正常工作

时间:2015-02-06 12:10:34

标签: dart stagexl

我试图在画布上创建一个使用Dart和StageXL对MouseClick事件做出反应的方框。我的代码如下:

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

我已经尝试了on(MouseEvent.CLICK).listen(react);addEventListener(MouseEvent.CLICK, react);但没有成功,没有任何反应。我正在使用Dart编辑器& SDK版本1.8.5并在默认的Dartium浏览器上进行调试。

感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

在互联网上进行一些搜索之后,我在StageXL论坛上找到了这个link,它正确地解释了为什么它不起作用。所以我改变了界限:

var rect = new sxl.Shape();

为:

var rect = new sxl.Sprite();

它反应很好。
希望这对某人有帮助。