![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
А она уже загрузилась на момент запроса ширины?
|
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Вроде да.. "_x" и "_y" определяются, картинка на экране.
|
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
Это вовсе не значит, что на момент проверки ширины и высоты она была загружена. Координаты у неё есть, потому что уже зарезервировано.
|
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
сделал следующее:
создал HTML, открывающий данную картинку, получил возможность использовать XML.onLoad и, таким образом, отслеживать момент открытия картинки. Вариант с setInterval действительно не прокатывал т.к.: а)картинки бывают разных размеров; б)расположены они могут быть в разных местах. Всем большое спасибо. Результат: http://www.flasher.ru/forum/showthread.php?t=96892 Последний раз редактировалось Torero; 09.06.2007 в 06:50. |
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
То, что xml загружен, совсем не значит что картинка загружена.
|
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
А как тогда выловить момент загрузки картинки???
|
|
|||||
|
Ветеран форума
Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
|
Для загрузки картинки нужно использовать класс MovieClipLoader и его событие onLoadInit или onLoadComplete, onLoadInit работает лучше.
|
|
|||||
|
Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
|
Цитата:
Тогда она в текстовое поле встанет из кеша - небольшой таймаут после загрузки xml. Это все теория. |
|
|||||
|
[+1.4 18.06.07]
Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
|
Доброго времени суток!
Решить задачку, в целом, получилось.. данный код, будучи вставленным в 1й фрейм, адекватно выравнивает текстовое поле..(autoSize не срабатывает на htmlText-е - проблема на уровне Macromedia - с этим приходится мириться.) this.createTextField("tContent", this.getNextHighestDepth(), 0, 0, 40, 40);
tContent.html = true;
tContent.border = true;
tContent.multiline=true;
tContent.htmlText = "Дядька: <img id='pic' width='320' height='430' align='center' vspace='0' hspace='1'src='http://www.bibliotekar.ru/kVinci/14.files/image001.jpg'>";
function checkPic():Void {
var nLoaded:Number = tContent.pic.getBytesLoaded();
var nTotal:Number = tContent.pic.getBytesTotal();
if(nLoaded/nTotal >= 1 && tContent.pic._width > 0) {
trace("!");
tContent._width = tContent.pic._width;
tContent._height = tContent.pic._height+tContent.textHeight;
clearInterval(nInterval);
}
}
var nInterval:Number = setInterval(checkPic, 100);
Можно было-бы начать рассуждать про очередную победу отечественного интеллекта над буржуйской техникой, если-бы не один вопрос.. почему аналогичный код, будучи вставленным в класс у меня не работает? Где ошибка? import mx.core.UIObject;
class classes.C extends UIObject{
public var a:TextField;
public function C(){
a=this.createTextField("tContent", this.getNextHighestDepth(),0, 0, 40, 40);
a.html = true;
a.multiline=true
a.wordWrap=true;
a.border=true;
a.htmlText = "Мужык: <img id='pic' width='320' height='430' align='center' vspace='0' hspace='1' src='http://www.bibliotekar.ru/kVinci/14.files/image001.jpg'>";
function checkPic(tContent:TextField){
trace("!");
var nLoaded:Number = tContent.pic.getBytesLoaded();
var nTotal:Number = tContent.pic.getBytesTotal();
if(nLoaded/nTotal >= 1 && tContent.pic._width > 0) {
trace("!!!");
tContent._width = tContent.pic._width;
tContent._height = tContent.pic._height+tContent.textHeight;
clearInterval(nInterval);
}
}
var nInterval:Number = setInterval(checkPic(a), 100);
}
}
Последний раз редактировалось Torero; 14.06.2007 в 06:54. |
|
|||||
|
Регистрация: Feb 2007
Сообщений: 264
|
Цитата:
На что указывает this при создании текстового поля? |
![]() |
![]() |
Часовой пояс GMT +4, время: 17:21. |
|
|
« Предыдущая тема | Следующая тема » |
|
|