2010-09-20 31 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是你的來電事件)