flash CS3.0-InteractiveObject的doubleClick事件

作者:佚名  来源:本站整理  发布时间:2010-02-24 09:42:10

我们晓得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");
}

你可能感兴趣的:(c,function,Flash,events,2010)