Es mejor que hagas una función a la que le envíes el número de zoom que quieres hacer y te utilice estas mismas funciones para que no tengas que repetir el código para los botones de 300 y 400.
Y otra cosa, si son muchos íconos es mejor que utilices una librería de clases como TweenMax, TweenLite o Tweener, los Tween de Adobe a pesar de ser complicados a la hora de implementarlos, consumen muchos recursos, por lo que si tienes muchos Tween a la vez tu aplicación puede tornarse lenta.
Ahora trata de que los íconos que estén dentro del mapa estén a 100%, no a 50% para no complicar el cálculo que hay que realizar. El siguiente ejemplo lo realicé pensando que estos tienen el 100% de escala.
Imagina que los íconos dentro de tu mapa tienen nombres de instancia "icono0", "icono1", "icono2", etc... he creado una variable que te dice la cantidad de íconos llamada totalIcons, bueno debe ser algo como esto:
Código ActionScript :
import mx.transitions.Tween;
import mx.transitions.easing.*;
var zoomx1:Tween;
var zoomy2:Tween;
var zoomIconX:Tween;
var zoomIconY:Tween;
var totalIcons:Number = 4;
ZoomIN.onRelease = function():Void {
var escala:Number = 200;
zoomx1 = new Tween(mapa, "_xscale", None.easeNone, 100, escala, 0.5, true);
zoomy1 = new Tween(mapa, "_yscale", None.easeNone, 100, escala, 0.5, true);
for (var i:Number = 0; i<totalIcons; i++) {
zoomIconX = new Tween(mapa["icono" + i], "_xscale", None.easeNone, 100, 10000 / escala, 0.5, true);
zoomIconY = new Tween(mapa["icono" + i], "_yscale", None.easeNone, 100, 10000 / escala, 0.5, true);
}
};
ZoomOUT.onRelease = function():Void {
var escala:Number = 200;
zoomx1 = new Tween(mapa, "_xscale", None.easeNone, escala, 100, 0.5, true);
zoomy1 = new Tween(mapa, "_yscale", None.easeNone, escala, 100, 0.5, true);
for (var i:Number = 0; i<totalIcons; i++) {
zoomIconX = new Tween(mapa["icono" + i], "_xscale", None.easeNone, 10000 / escala, 100, 0.5, true);
zoomIconY = new Tween(mapa["icono" + i], "_yscale", None.easeNone, 10000 / escala, 100, 0.5, true);
}
};