Из-за любопытства я пытаюсь понять жизненный цикл, используемый Flex Application.
Итак, я провел небольшое исследование по этому аргументу; две основные концепции, используемые в FlashPlayer:
- SWF-кадр: это логическая единица, содержащая графический код и код
- Flash Player Frame: это временной интервал, используемый средой выполнения Flash для обновления экрана и определенный свойством frameRate
Если так, не могли бы вы объяснить мне связь между этими двумя понятиями? В частности, они в паре вместе или нет?
Основное правило: потоки проигрывателя Flash Player в формате SWF; пока не будет прочитан полный кадр SWF, проигрыватель Flash Player не сможет его отобразить.
Я попытаюсь объяснить, что мне нужно понять. Для простоты предположим, что у вас есть приложение с двумя фреймами: SWF FR 1 и SWF FR 2.
В общем случае (например, в CS4) кадр рассматривается как логическая единица (ограниченная тегом ShowFrame), к которой можно прикрепить код as3. Это упрощенная версия SWF-файла, я думаю:
- Заголовок // frameRate определяется здесь
- Символы, классы и т.д ... // это FR1
=== ShowFrame ===
- Символы, классы и т.д… // это FR2
=== ShowFrame ===
Конец
Если у вас есть два кадра, FR1 и FR2, Flash начинает выполнять FR1 и переходит к следующему (FR2). Если вы не остановите выполнение, проигрыватель выполнит и отобразит код, содержащийся в FR1 и FR2, через бесконечный цикл. Напротив, когда вы останавливаете выполнение, например, в FR2, флэш-проигрыватель зацикливает выполнение кода, содержащегося в FR2.
Итак, могут ли кадры Flash Player происходить много раз за кадр SWF?
Когда FR1 загружается (FR1 загружен не полностью), есть ли какие-либо события enterFrame или нет? Первый frameEvent происходит, когда FR1 полностью загружен? В течение какого времени отображается FR1?
В другом сценарии, если вы вызвали команду остановки в FR1, вы получите enterFrame с указанной вами скоростью (текущий кадр - FR1). Тем временем FR2 загружается. Когда он закончен, вы переходите к следующему кадру (FR2). В течение какого времени отображается FR2? Flash Player пытается отрендерить FR2 до следующего интервала времени?
Примите во внимание эту простую последовательность:
- FR1 загружает
- FR1 полностью загружен
- FR1 вызывает метод stop (), а FR2 загружает
- FR2 полностью загружен
- Перейти к FR2
- FR2 вызывает метод stop ()
- и т. Д.
Не могли бы вы подчеркнуть для меня, когда происходят события Flash Player enterFrame?
Спасибо за ваше время. С наилучшими пожеланиями, Flex_Addicted.