
Код AS1/AS2:
var picBaseWidth:Number = 150; //фиксированная ширина картинки
var picNames:Array = new Array(); //массив для имен файлов картинок
var picWidth:Array = new Array(); //массив для ширин
var picHeight:Array = new Array(); //массив для высот
var picNewHeight:Array = new Array(); //массив для новых высот
picNames[1] = 'pic1.jpg';
picNames[2] = 'pic2.jpg';
picNames[3] = 'pic3.jpg';
var mcLoader:MovieClipLoader = new MovieClipLoader();
var listener:Object = new Object();
mcLoader.addListener(listener);
//тут мы узнаем и запоминаем размеры картинок после предвартельной загрузки
listener.onLoadInit= function (target_mc:MovieClip) {
var num:Number = target_mc._parent.picNumber; //извлекаем номер картинки
picWidth[num] = target_mc._width ;
picHeight[num] = target_mc._height ;
var scale:Number = picBaseWidth / target_mc._width ;
picNewHeight[num] = Math.round(target_mc._height * scale); //находим новую высоту
removeMovieClip(target_mc._parent); //удаляем временный мувик со всем содержимым
};
//грузим картинки
for (i = 1; i < picNames.length ; i++) {
var cont_mc:MovieClip = new MovieClip();
cont_mc = this.createEmptyMovieClip('container' + i, this.getNextHighestDepth()); //создаем временный мувик для каждой картинки
cont_mc.createEmptyMovieClip('image', 0); //создаем временный контейнер внутри этого мувика для картинки
cont_mc.picNumber = i; //запоминаем внутри временного мувика номер картинки
mcLoader.loadClip(picNames[i], cont_mc.image); //грузим туда картинку
}
function printImage (num:Number) { //печатает картинку в текстовое поле с именем test1, test2 и т.д.
this['test' + num].htmlText = '<img src="' + picNames[num] + '" width="' + picBaseWidth + '" height="'+ picNewHeight[num] + '"/>';
}
Дополнительный вложенный контейнер image внутри container пришлось сделать, чтобы можно было запомнить номер картинки для использования в onLoadInit, так как из мувика стирается вся информация после загрузки туда нового контента (картинки).
В силу того, что AS выполняется асинхронно, либо используйте функцию, приведенную в конце кода, либо формируйте строку по своим собственным событиям, с учетом того, то полностью новые высоты будут известны только после отработки onLoadInit для всех картинок. Можете прямо в теле onLoadInit формировать html-строку... тогда массивы ширины, высоты и новой высоты вообще не нужны будут.
Добавлено через 1 час 53 минуты
Наверное, лучше это перенести в ветку AS2.0...