Я столкнулся с этой проблемой, используя файлы pdf2swf в AIR. Кажется, я нашел решение, поэтому я решил опубликовать его здесь на случай, если у кого-то возникнут похожие проблемы.
В целях проверки надежности моего приложения я загружаю однофайловый файл pdf-swf объемом 500 страниц в свое приложение eReader AIR.
Проблема в том, что при переходе от страницы к странице я вижу, что часть содержимого с предыдущей страницы остается видимой. В отладчике я вижу длинный список предупреждений:
Warning: Failed to place object at depth 1
Warning: Failed to place object at depth 2
Etc.
Я наткнулся на следующую работу вокруг. Прежде чем перейти на новую страницу, я иду по следующему адресу:
// _mainTimeline is the movieClip of the book
if (_mainTimeline.currentFrame != targetFrameNum) {
var chldCnt:int = _mainTimeline.numChildren;
for (var n:int = 0; n < chldCnt; n++) {
_mainTimeline.removeChildAt(0);
if (_mainTimeline.numChildren == 0) {
break;
}
}
_mainTimeline.gotoAndStop(targetFrameNum);
}
ПРИМЕЧАНИЕ. Я знаю, что кодирование итерации будет короче
.
while (_mainTimeline.numChildren > 0) {
_mainTimeline.removeChildAt(0);
}
но я видел блокировку программы при первом тестировании, поэтому я добавил дополнительные меры предосторожности только при запуске цикла numChildren раз и всегда проверяя, остались ли еще дочерние элементы для удаления. Вероятно, это слишком много, но лучше, чем потом сожалеть.