Поскольку все спрайты и мувиклипы являются как экранными объектами, так и контейнерами экранных объектов, теоретически вы можете сохранять их вложенными вечно. Конечно, существуют физические ограничения, но я не вижу причин, по которым должно быть какое-то ограничение, кроме памяти и вычислительной мощности (в какой-то момент обновление экрана станет вялым, а со временем ждать будет болезненно).
Я искал в Интернете, чтобы узнать, смогу ли я найти какую-либо информацию о встроенном пределе, применяемом AVM, какие-либо документы или коды ошибок, которые бы указывали на его наличие, но я ничего не смог найти вообще. Конечно, это не значит, что нет - просто означает, что многие еще не достигли предела;)
Так что, если кто-то еще знает больше ...
EDIT
Поскольку информация о загруженном MovieClip является новой, вот мое обновление: SWF-файлы AVM1 (AS1 & 2) не всегда выполняются одинаково при загрузке в фильм AVM2 (AS3). Это никак не связано с количеством вложенных экранных объектов. Сначала я думал, что это потому, что свойство _lockroot было удалено в AS3, но я немного искал и обнаружил, что оно по умолчанию считается истинным, и поэтому не должно быть проблемой.
В вашем сценарии может быть много вещей, которые отличаются от того, когда файл запускается сам по себе, и я бы начал с рассмотрения этих моментов:
- Используете ли вы относительные пути для загрузки других данных в AS2 swf?
- Получаете ли вы какие-либо сообщения об ошибках (в частности, ошибки нарушения изолированной программной среды безопасности)?
- Использует ли SWF-файл AS2 внешние переменные, которые должны быть установлены (FlashVars)
- Требуется ли вашему SWF-файлу AS2 доступ к ExternalInterface?
ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ
Поскольку эта новая информация только что появилась:
Не существует абсолютно никакого способа выполнять динамически загруженный байт-код AVM на iPad во время выполнения, по той же причине, что нет Java VM и нет Flash Player для iOS: Apple не разрешает выполнение динамически загружаемого байтового кода вообще. Период.
Следовательно, вы можете загружать и воспроизводить SWF-анимацию, но не ActionScript. Это будет просто проигнорировано. Кроме того, ни одно из запущенных вами приложений на самом деле не является байт-кодом AVM - они скомпилированы в байт-код LLVM вместо .
Вам нужно будет найти способ проверить конец анимации, который не включает команды stop (). Возможно, это можно сделать, проверив номера кадров в вашем контейнере AS3?