Вы можете масштабировать контейнер вместо изображения ... Предполагая, что горячие точки относятся к изображению, было бы целесообразно иметь их в одном контейнере.Если ваш текущий контейнер содержит какие-либо другие элементы, вы должны создать новый только для рис и пятен.
Редактировать:
pseudo code
hotspot1.x = pic.width * hx1;
hotspot1.y = pic.height * hy1;
Вам понадобитсяфункция, которая вызывается после масштабирования изображения
function onImageScaleComplete(event:Event):void
{
updatePositions();
}
Но прежде чем вам придется создавать масштабные коэффициенты, когда изображение еще не масштабировано.
//an array to contain the new scale factors
var factors:Array = [];
//an array containing the hotspots
var hotspots:Array = [hotspot1 , hotspot2 /*etc... */];
function setPoints():void
{
for( var i:int ; i < hotspots.length ; ++i )
factors[i] = { xfactor: hotspots[i].x/pic.width ,
yfactor: hotspots[i].y/pic.height };
}
Затем вы можете обновитьвот так, предполагая новую ширину и высоту картинки
function updatePositions():void
{
for( var i:int ; i< hotspots.length ; ++i )
{
hotspots[i].x = factors[i].xfactor * pic.width;
hotspots[i].y = factors[i].yfactor * pic.height;
}
}