2010-09-20 109 views
0

我目前有8个不同对象的over,out和click事件。 over和out事件对每个事件都是相同的(补间展开对象,然后缩回到外面状态)。在多个对象上侦听多个事件AS3

我以前曾要求过一种简单的方法来声明这些事件,现在我正在寻找一种更简单的方法来处理它们。

这里是我的代码:

//-----------GARAGE 
function growGarage(e:MouseEvent):void{ 
    scaleTweenX = new Tween(map_garage, "scaleX", Elastic.easeOut, 0.648, 1, 0.5, true); 
    scaleTweenY = new Tween(map_garage, "scaleY", Elastic.easeOut, 0.648, 1, 0.5, true); 
} 
function shrinkGarage(e:MouseEvent):void{ 
    scaleTweenX = new Tween(map_garage, "scaleX", Elastic.easeOut, 1, 0.648, 0.5, true); 
    scaleTweenY = new Tween(map_garage, "scaleY", Elastic.easeOut, 1, 0.648, 0.5, true); 
} 
function garageClick(e:MouseEvent):void{ 
    trace("clicked"); 
} 
//-----------B&B 
function growBandb(e:MouseEvent):void{ 
    scaleTweenX = new Tween(map_bandb, "scaleX", Elastic.easeOut, 0.648, 1, 0.5, true); 
    scaleTweenY = new Tween(map_bandb, "scaleY", Elastic.easeOut, 0.648, 1, 0.5, true); 
} 
function shrinkBandb(e:MouseEvent):void{ 
    scaleTweenX = new Tween(map_bandb, "scaleX", Elastic.easeOut, 1, 0.648, 0.5, true); 
    scaleTweenY = new Tween(map_bandb, "scaleY", Elastic.easeOut, 1, 0.648, 0.5, true); 
} 
function bandbClick(e:MouseEvent):void{ 
    trace("clicked"); 
} 
//-----------FACTORY 
function growFactory(e:MouseEvent):void{ 
    scaleTweenX = new Tween(map_factory, "scaleX", Elastic.easeOut, 0.648, 1, 0.5, true); 
    scaleTweenY = new Tween(map_factory, "scaleY", Elastic.easeOut, 0.648, 1, 0.5, true); 
} 
function shrinkFactory(e:MouseEvent):void{ 
    scaleTweenX = new Tween(map_factory, "scaleX", Elastic.easeOut, 1, 0.648, 0.5, true); 
    scaleTweenY = new Tween(map_factory, "scaleY", Elastic.easeOut, 1, 0.648, 0.5, true); 
} 
function factoryClick(e:MouseEvent):void{ 
    trace("clicked"); 
} 
//-----------SCHOOL 
function growSchool(e:MouseEvent):void{ 
    scaleTweenX = new Tween(map_school, "scaleX", Elastic.easeOut, 0.648, 1, 0.5, true); 
    scaleTweenY = new Tween(map_school, "scaleY", Elastic.easeOut, 0.648, 1, 0.5, true); 
} 
function shrinkSchool(e:MouseEvent):void{ 
    scaleTweenX = new Tween(map_school, "scaleX", Elastic.easeOut, 1, 0.648, 0.5, true); 
    scaleTweenY = new Tween(map_school, "scaleY", Elastic.easeOut, 1, 0.648, 0.5, true); 
} 
function schoolClick(e:MouseEvent):void{ 
    trace("clicked"); 
} 

我用一个单一的功能尝试,然后使用“本”在补间的对象而是扩大了整个舞台。

有没有办法压缩这段代码?

干杯,

回答

2

您可以使用一个单一的处理器,而是采用this,使用e.currentTarget。 (当e是你的来电事件)