[]一个LayaAir moveout target 设计上的疑问?
Laya.init(600, 600);
Laya.stage.bgColor = "white";
var sp = ;
//10x10个黑色方块,鼠标移动过去时变红,鼠标移走恢复
for (var i = 0; i < 10; i++) {
for (var j = 0; j < 10; j++) {
sp[j + i * 10] = new Laya.Sprite();
Laya.stage.addChild(sp[j + i * 10]);
sp[j + i * 10].graphics.drawRect(0, 0, 50, 50, "black");
sp[j + i * 10].size(50, 50);
sp[j + i * 10].pos(i * 60, j * 60);
sp[j + i * 10].on(Laya.Event.MOUSE_OVER, this, over);
sp[j + i * 10].on(Laya.Event.MOUSE_OUT, this, out);
}
}
function over(e) {
e.target.graphics.drawRect(0, 0, 50, 50, "red");
}
function out(e) {
//正常大家可能会这么写,但是运行之后是无效的,因为e.target可能变成stage或者null,也可能是正确的sprite。layaAir就是这么设计的?还是单纯的bug。如果是这么设计的,这个功能的代码该如何写?
e.target.graphics.drawRect(0, 0, 50, 50, "black");
}
没有找到相关结果
已邀请:
要回复问题请先登录
1 个回复
rock8654
赞同来自:
sp[j + i * 10].on(Laya.Event.MOUSE_OUT, this, out,[sp[j + i * 10]]);
可以对象做为参数传回去啊
e就是你要的对象了