[]一个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");
}




已邀请:

rock8654

赞同来自:

sp[j + i * 10].on(Laya.Event.MOUSE_OVER, this, over,[sp[j + i * 10]]);
sp[j + i * 10].on(Laya.Event.MOUSE_OUT, this, out,[sp[j + i * 10]]);
可以对象做为参数传回去啊
e就是你要的对象了

要回复问题请先

商务合作
商务合作