我们晓得doubleClick事情是在as3中新增加的事情,我们经常需求使用到这个事情,在as2我时期需求本人写函数判别双击,在as3中就能够直接使用这个事情了,但是在使用这个事情的时分有个细节要次要,首先事情是InteractiveObject所属的,因而从InteractiveObject承继上去的对象才干使用该属性,另外一个是要首先设置doubleClickEnabled属性为true,最初这个事情是使用内部的元件接纳的(the instance receives doubleClick events within its bounds),所以假如你要侦听的doubleClick事情的元件内部有从InteractiveObject承继的元件,要么设置这些元件的 mouseEnabled为false,要么使用内部本来来侦听doubleClick事情.
1.内部元件不是从InteractiveObject承继上去,能够直接使用元件接纳事情
//----------------------------------------------
var a:Sprite = new Sprite();
addChild(a);
var b = new Shape();
a.addChild(b);
b.graphics.beginFill(0x0);
b.graphics.drawRect(0,0,100,100);
b.graphics.endFill();
a.doubleClickEnabled = true;//使用a接纳
a.addEventListener("doubleClick",dc);
function dc(e)
{
trace("dc");
}
2.内部元件有多个从InteractiveObject承继上去,能够使用最上面的元件来接纳,或者设置其他元件不接纳鼠标事情
//----------------------------------------------
var a:Sprite = new Sprite();
addChild(a);
var b = new Sprite();
a.addChild(b);
var c = new Sprite();
a.addChild(c);
b.graphics.beginFill(0x0);
b.graphics.drawRect(0,0,100,100);
b.graphics.endFill();
c.graphics.beginFill(0x0);
c.graphics.drawRect(0,0,100,100);
c.graphics.endFill();
c.mouseEnabled = false;//设置c不接纳鼠标事情,才干让上面的b接纳
b.doubleClickEnabled = true;//使用b接纳
b.addEventListener("doubleClick",dc);
function dc(e)
{
trace("dc");
}
3.设置一切的内部元件不接纳鼠标事情,这样就能够使用元件来接纳doubleClick事情
//--------------------------------------------------------------------------------
var a:Sprite = new Sprite();
addChild(a);
var b = new Sprite();
a.addChild(b);
var c = new Sprite();
a.addChild(c);
b.graphics.beginFill(0x0);
b.graphics.drawRect(0,0,100,100);
b.graphics.endFill();
c.graphics.beginFill(0x0);
c.graphics.drawRect(0,0,100,100);
c.graphics.endFill();
b.mouseEnabled = false;//不接纳鼠标事情
c.mouseEnabled = false;//不接纳鼠标事情
a.doubleClickEnabled = true;
a.addEventListener("doubleClick",dc);
function dc(e)
{
trace("dc");
}