StageXL MouseEvent 不工作
StageXL MouseEvent not working
我正在尝试使用 Dart 和 StageXL 在 canvas 上创建一个对 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 Editor & SDK 版本 1.8.5 并在默认的 Dartium 浏览器上进行调试。
感谢任何帮助。
在互联网上进行一些搜索后,我在 StageXL 论坛上找到了这个 link,它正确地解释了为什么它不起作用。所以我改变了这一行:
var rect = new sxl.Shape();
至:
var rect = new sxl.Sprite();
而且反应很好。
希望这对某人有帮助。
我正在尝试使用 Dart 和 StageXL 在 canvas 上创建一个对 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 Editor & SDK 版本 1.8.5 并在默认的 Dartium 浏览器上进行调试。
感谢任何帮助。
在互联网上进行一些搜索后,我在 StageXL 论坛上找到了这个 link,它正确地解释了为什么它不起作用。所以我改变了这一行:
var rect = new sxl.Shape();
至:
var rect = new sxl.Sprite();
而且反应很好。
希望这对某人有帮助。