ScrollPane не работает с динамическим содержимым в as3

scrollPane.setSize(400,400);
scrollPane.source=emptyc;

Где emptyc - это контейнер, в который я добавляю контент динамически (т.е. с помощью метода addChild), это не работает. Он просто вообще не прокручивается.

Ни то, ни другое не работает, если я добавляю контент, используя scrollPane в качестве самого контейнера (т.е.:

scrollPane.addChild(myChild);

person user1212216    schedule 16.02.2012    source источник


Ответы (1)


Проблема в том, что экземпляр ScollPane не знает, что вы обновили его содержимое (добавили дочерний элемент в emptyc/etc.), поэтому вам нужно сообщить об этом update().

Вот простой пример:

var b:BitmapData = new BitmapData(2,2,false,0xFFFFFF);
b.setPixel(0,0,0);b.setPixel(1,1,0);
var s:Shape = new Shape();

var sp:ScrollPane = new ScrollPane();
sp.scrollDrag = true;
sp.source = s;
addChild(sp);


s.graphics.beginBitmapFill(b);
s.graphics.drawRect(0,0,1000,1000);
s.graphics.endFill();
sp.update();

Обратите внимание, что вы получите то же поведение, о котором упоминали, если закомментируете sp.update();. Кроме того, в документации есть пример.

person George Profenza    schedule 16.02.2012