Показать сообщение отдельно
Старый 03.12.2011, 22:20
orcpochta вне форума Посмотреть профиль Отправить личное сообщение для orcpochta Найти все сообщения от orcpochta
  № 1  
Ответить с цитированием
orcpochta

Регистрация: Feb 2008
Сообщений: 890
По умолчанию Словил жестокий баг с DisplayObject.scrollRect

Код AS3:
import flash.display.Sprite;
import flash.geom.Rectangle;
import flash.events.MouseEvent;
import flash.events.Event;
 
var s:Sprite = new Sprite();
s.graphics.beginFill(0x123456);
s.graphics.drawRect(0, 0, 100, 100);
addChild(s);
 
var rect:Rectangle = new Rectangle(0, 0, 50, 50);
 
stage.addEventListener(MouseEvent.CLICK, handler_click);
 
function handler_click(event:Event = null):void {
	s.scrollRect = rect;
	trace('handler_click:', s.width, s.height);
	//stage.addEventListener(Event.ENTER_FRAME, handler_enterFrame);
}
 
function handler_enterFrame(event:Event):void {	
	trace('handler_enterFrame:', s.width, s.height);
}
Ширина и высота после накладывания scrollRect-a не сразу принимают правильные значения:

Цитата:
handler_click: 100 100
handler_click: 50 50
Более того, если раскомментировать слушатель ENTER_FRAME-a, то у меня видно, что и в его первом срабатывании размеры еще не приняли истинного значения:

Цитата:
handler_click: 100 100
handler_enterFrame: 100 100
handler_enterFrame: 50 50
Этот глюк стоил мне мощнейшего батхерда уже вторую пару выходных.
__________________
скриптограф