Показать сообщение отдельно
Старый 07.12.2012, 19:04
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 22  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,883
Записей в блоге: 7
Цитата:
Сообщение от udaaff Посмотреть сообщение
Вот и пользуйся RENDEROM после этого... )

Добавлено через 5 минут
Тут получается надо вручную вызывать отрисовку дочерних компонентов.
Для начала нужно понять идеологию invalidate. А если ты криво написал код, то кто в этом виноват кроме тебя?)
Смысл invalidate в том, что ты сначала подготавливаешь все данные, и только перед самым рендером производишь какие-то действия. А ты в примере даешь данные и когда наступает ренедр, пытаешься передать данные снова.
Строка
Код AS3:
this._child.width = this.width / 2;
должна быть тут
Код AS3:
override public function set width(value:Number):void
{
	if (this._width == value)
		return;
 
	Logger.trace("parent width set to ", value);
	this._width = value;
	this._child.width = value / 2;
	super.changed = true;
}
Добавлено через 3 минуты
Цитата:
Сообщение от Psycho Tiger Посмотреть сообщение
Дак как решит? Отрисовка на экран всё равно будет происходить после исполнения скриптов кадра.
И тем более, по словам топикстартера - меняет width/height один раз.
Отрисовке может предшествовать сложные вычисления. Например у тебя должна рисоваться bitmapData с кучей вставок, вызывая width и height один раз, ты на самом деле рисуешь эту bitmapData два раза. С начала с новым width, а потом и с новым height. А invalidate откладывает отрисовку до самого последнего момента, когда новые width и height уже тебе известны.
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 07.12.2012 в 21:16.