LMouseEventContainer Class
LMouseEventContainer是一个鼠标事件监听器的容器,一般的鼠标事件监听需要遍历所有的可视对象,对程序消耗是比较大的,使用LMouseEventContainer后,鼠标监听对象变为只监听加载了鼠标事件的对象,可以大幅度提升鼠标事件监听的效率,但是,缺点是无法使用显示对象对鼠标事件进行遮挡。
Constructor
LMouseEventContainer
()
public
Example:
LInit(50, "legend", 800, 480, main);
function main () {
LGlobal.setDebug(true);
LMouseEventContainer.set(LMouseEvent.MOUSE_DOWN,true);
var layer01 = new LSprite();
layer01.x = 50;
layer01.y = 20;
addChild(layer01);
var bmd = new LBitmapData("#FF0000", 0, 0, 100, 100);
var bm = new LBitmap(bmd);
layer01.addChild(bm);
layer01.addEventListener(LMouseEvent.MOUSE_DOWN, onmouse);
layer01.addEventListener(LMouseEvent.MOUSE_DOWN, onmouseOther);
var layer02 = new LSprite();
layer02.graphics.drawRect(1,"#008800",[0,0,100,100],true);
layer02.x = 200;
layer02.y = 20;
addChild(layer02);
layer02.addEventListener(LMouseEvent.MOUSE_DOWN, onmouse);
layer02.addEventListener(LMouseEvent.MOUSE_DOWN, onmouseOther);
}
function onmouse(event){
trace("event.currentTarget : " + event.currentTarget + "(" + event.currentTarget.objectIndex + ")");
trace("event.target : " + event.target + "(" + event.target.objectIndex + ")");
trace("event.clickTarget == event.currentTarget : " + (event.clickTarget == event.currentTarget));
trace("event.offsetX : " + event.offsetX, "event.offsetY : " + event.offsetY);
trace("event.selfX : " + event.selfX, "event.selfY : " + event.selfY, "");
}
function onmouseOther(event,object){
trace("onmouseOther event.currentTarget : " + event.currentTarget + "(" + event.currentTarget.objectIndex + ")");
trace("onmouseOther object : " + object + "(" + object.objectIndex + ")");
trace("onmouseOther object == event.currentTarget : " + (object == event.currentTarget), "");
}