Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Закрытая тема
Старый 09.06.2007, 04:51
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 11  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
А она уже загрузилась на момент запроса ширины?

Старый 09.06.2007, 04:55
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 12  
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
Вроде да.. "_x" и "_y" определяются, картинка на экране.

Старый 09.06.2007, 04:59
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 13  
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Это вовсе не значит, что на момент проверки ширины и высоты она была загружена. Координаты у неё есть, потому что уже зарезервировано.

Старый 09.06.2007, 06:30
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 14  
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
сделал следующее:
создал HTML, открывающий данную картинку, получил возможность использовать XML.onLoad и, таким образом, отслеживать момент открытия картинки. Вариант с setInterval действительно не прокатывал т.к.:
а)картинки бывают разных размеров;
б)расположены они могут быть в разных местах.
Всем большое спасибо.
Результат:
http://www.flasher.ru/forum/showthread.php?t=96892


Последний раз редактировалось Torero; 09.06.2007 в 06:50.
Старый 09.06.2007, 06:38
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 15  
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
То, что xml загружен, совсем не значит что картинка загружена.

Старый 09.06.2007, 06:44
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 16  
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: May 2007
Адрес: Moscow
Сообщений: 263
А как тогда выловить момент загрузки картинки???

Старый 09.06.2007, 07:18
screamge вне форума Посмотреть профиль Отправить личное сообщение для screamge Посетить домашнюю страницу screamge Найти все сообщения от screamge
  № 17  
screamge
Ветеран форума
 
Аватар для screamge

Регистрация: Jul 2006
Адрес: Грузия, Тбилиси
Сообщений: 2,675
Для загрузки картинки нужно использовать класс MovieClipLoader и его событие onLoadInit или onLoadComplete, onLoadInit работает лучше.
__________________
Free-lance | Twitter | Me

Старый 09.06.2007, 08:06
Kikasso вне форума Посмотреть профиль Отправить личное сообщение для Kikasso Найти все сообщения от Kikasso
  № 18  
Kikasso
 
Аватар для Kikasso

Регистрация: Oct 2006
Адрес: spb.ru
Сообщений: 3,221
Цитата:
Сообщение от Torero
А как тогда выловить момент загрузки картинки???
Может быть, грузить ее через MovieClipLoader, по загрузке грохнуть и грузить xml..
Тогда она в текстовое поле встанет из кеша - небольшой таймаут после загрузки xml. Это все теория.

Старый 14.06.2007, 06:48
Torero вне форума Посмотреть профиль Отправить личное сообщение для Torero Найти все сообщения от Torero
  № 19  
Torero
[+1.4 18.06.07]
 
Аватар для Torero

Регистрация: 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.
Старый 14.06.2007, 10:22
this.create вне форума Посмотреть профиль Отправить личное сообщение для this.create Найти все сообщения от this.create
  № 20  
this.create

Регистрация: Feb 2007
Сообщений: 264
Цитата:
Сообщение от Torero
.. почему аналогичный код, будучи вставленным в класс у меня не работает? Где ошибка?
Что именно не работает?
На что указывает this при создании текстового поля?

Создать новую тему Закрытая тема Часовой пояс GMT +4, время: 14:40.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 14:40.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.