Просмотр полной версии : Загрузка img, в тексте.
В TextField загружается текст из html/css
Допустим, в тексте есть 2 картинки, размерами 50px 50px и 120px 70px
Они, загружаются в текст, соответственно с такими размерами.
Можно как-нибудь сделать так, задать фиксированную ширину для всех картинок?
(типа, все картинки будут, пропорционально уменьшаться или увеличиваться в длину - относительно фик. размера ширины)
<img src="http://www.site.com/logo.png" width="*" height="*" align="right">
Пересчситывайте пропорционально width и height..
А как сделать так, чтобы размеры картинки задавались автоматически?
всегда, скажем:
(width="60px" размер фиксирован.);
(height="размер не фиксирован; относительно размера width")
Если в блокноте набрать эту строчку
<img src="http://www.google.ru/intl/en_com/images/logo_plain.png" width="216"/>
или
<img src="http://www.google.ru/intl/en_com/images/logo_plain.png" width="116"/>
сохранить и открыть через браузер,
то картинка уменьшается пропорционально (фик.) уменьшению ширины. т. е. все как надо.
А во флеш, если задать только (width, без height) картинка, вообще, не отображается?
Почему не тображается? Отображается. Вы попробуйте и увидите. Только размер будет исходный, взятый от картинки.
Добавлено через 5 минут
сохранить и открыть через браузер,
то картинка уменьшается пропорционально (фик.) уменьшению ширины. т. е. все как надо. Ширины чего?
Это с чего бы картинка, заданная в пикселях, будет изменять свой размер в браузере, если мы изменяем размер окна?
В чисто (h)tml варианте все отображается как надо
Отображается она только в (скажем txt - html) т. е. чисто html варианте.
<img src="http://www.google.ru/intl/en_com/images/logo_plain.png" width="216"/>
http://www.google.ru/intl/en_com/images/logo_plain.png" width="216"
<img src="http://www.google.ru/intl/en_com/images/logo_plain.png" width="116"/>
http://www.google.ru/intl/en_com/images/logo_plain.jpg" width="116"
Если картинка имеет реальный размер 500px 300px
Чтобы пропорционально уменьшить картинку, в (h)tml мне достаточно добавить только (width, без height), вот width="116px" - и картинка с размерами (w500 h300)
пропорционально уменьшилась до w116, h(пропорционально width)
Ширины чего? - реального размера картинки html width 300, реал. размер pic 1024.
Картинка px не должна зависеть от размера браузера. - ясное дело.
Вопрос в другом
А во флеш, если задать только (width, без height) картинка, вообще, не отображается?
Вопрос в другом
А во флеш, если задать только (width, без height) картинка, вообще, не отображается?
Этот вопрос - вопрос пяти минут проверки.
И кстати, я вам на него уже ответил.
Добавлено через 6 минут
Если у вас ситуация, что вам можно использовать только width, то перед формированием html-строки можно попробовать использовать предварительную загрузку картинки в пустой мувик, узнать её размеры, и пересчитать высоту.
Увы, флеш - это не браузер.
mooncar
Почему не тображается? Отображается. Вы попробуйте и увидите. Только размер будет исходный, взятый от картинки.
Как можно изменить этот размер? (дай направление)
Нет, не изменить сам размер, а изменить width и height в строке. Если я правильно понял, у вас есть фиксированные ширины (равные какой-то одной величине) картинок в тексте, и вам нужно пропорционально подогнать их высоты, так?....
Если да, то могу подсказать.
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...
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.