2010-09-20 3 views
0

В настоящее время у меня есть событие over, out и click для 8 разных объектов. События over и out одинаковы для каждого (tween расширяет объект, а затем сжимает его для выходного состояния).Прослушивание нескольких событий на нескольких объектах 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"); 
} 

Я попытался с помощью одной функции, а затем с помощью «это» как объект анимации, но это расширило весь этап.

Есть ли способ сконденсировать этот код?

Приветствия,

Dan

ответ

2

Вы можете использовать один обработчик, вместо того, чтобы использовать this, используйте e.currentTarget. (Когда e - ваше входящее событие)

Смежные вопросы