Цитата:
Сообщение от ramshteks
прости уж что все урезал. и извини если уилоадер был нужен, но так хотя бы рабоает.
|
Я знаю, как сделать так, чтобы обычный ScrollPane работал

Проблема именно во взаимодействии UILoader и ScrollPane.
В частности из-за того, что в классе UIComponent есть методы:

Код:
protected function callLater(fn:Function):void {
if (inCallLaterPhase) { return; }
...
}
и

Код:
private function callLaterDispatcher(event:Event):void {
...
inCallLaterPhase = true;
var methods:Dictionary = callLaterMethods;
for (var method:Object in methods) {
method();
delete(methods[method]);
}
inCallLaterPhase = false;
}
UILoader вызывает событие ComponentEvent.RESIZE в конце метода draw, однако в это время статичная переменная inCallLaterPhase класса UIComponent равна true, поэтому функция CallLater класса ScrollPane не срабатывает.
Выход в принципе есть. Перенести присвоение inCallLaterPhase = false в методе callLaterDispatcher класса UIComponent в конец метода draw этого же класса. Но мне как-то не очень хочется править компоненту adobe, мало ли, какие-нибудь еще глюки могут возникнуть из-за этого.