Если размер 25 МБ незначительно велик, я бы сказал, что вам, вероятно, нужно разместить данные в компоненте и просто сохранить в памяти только пару страниц за раз. Я бы, вероятно, выбрал что-то вроде TextArea, а не List, но создание плавной прокрутки для TextArea может быть затруднено, если у вас нет всех данных, которые по звучанию напоминают то, что вам придется делать. Так что придерживайтесь списка пока, и выясните, сколько строк вы хотите сделать страницу. И реализуйте свой бэкэнд как метод вроде:
// service call interface
public Page getPage( int lineStart, int lines );
// response object from the service call
public class Page {
private var _totalLines:int;
private var _lineStart:int;
private var _lineEnd:int;
[ArrayElementType("String")]
private lines:ArrayCollection;
}
Затем вы можете загрузить страницу и сохранить количество X страниц в памяти, но используйте totalLines в файле, чтобы узнать, насколько велика ваша модель, чтобы полоса прокрутки могла правильно отображаться. Вам просто нужно создать провайдер данных подкачки, который загружает страницы, которые еще не загружены, и отбрасывает страницы, если они не отображаются, или страницы, наиболее удаленные от отображаемых.