Руководство по actionscript. часть 6, стр. 080
Стоит отметить, что предыдущий код, создающий текстовое поле, в качестве альтернативы (и этот вариант является более предпочтительным) мог быть добавлен в метод экземпляра класса RunningMan. С технической точки зрения любой подход является допустимым, однако лучшая практика заключается в сохранении кода во внешних файлах классов, а не в сценариях кадров.
Определения переменных и функций в сценариях кадров. Если определение переменной размещается в сценарии кадра на основной временной шкале FLA-файла, то в классе документа этого FLA-файла создается соответствующая переменная экземпляра. Подобным образом, если определение функции размещается в сценарии кадра на основной временной шкале FLA-файла, в классе документа этого FLA-файла создается соответствующий метод экземпляра.
Аналогично, если определение переменной размещается в сценарии кадра на временной шкале символа Movie Clip (Клип), в классе, связанном с этим символом, создается соответствующая переменная экземпляра. И если в сценарии кадра на временной шкале символа Movie Clip (Клип) размещается определение функции, то в классе, связанном с этим символом, создается соответствующий метод экземпляра (о символах Movie Clip (Клип) и связываемых классах будет рассказано в двух следующих разделах).
Тем не менее обратите внимание, что переменная экземпляра, созданная в сценарии кадра, будет проинициализирована только в момент выполнения этого сценария (то есть когда головка воспроизведения достигнет кадра, содержащего данный сценарий). Например, рассмотрим следующий код, демонстрирующий два сценария кадра:
// Сценарий кадра 1 trace(n): // Выводит: О
// Сценарий кадра 2 var n:int = 10; trace(n); // Выводит: 10
Когда выполняется первый из двух предыдущих сценариев кадра, переменная экземпляра п уже определена, но еще не проинициализирована (часть кода = 10 пока не выполнялась). В результате код trace (n) выведет значение 0 (значение по умолчанию для переменных типа int) в окне Output (Вывод). Когда выполняется второй сценарий, переменная экземпляра п уже проинициализирована (присвоено значение 10), поэтому код trace (п) выведет значение 10 в окне Output (Вывод).
В отличие от этого, когда выполнение сценария кадра завершено, любые переменные экземпляра, определенные в этом сценарии, могут использоваться вплоть до
завершения программы. Предположим, что мы добавили третий сценарий кадра на гипотетическую временную шкалу из предыдущего кода:
// Сценарий кадра 3 trace(n): // Выводит: 10 gotoAndStop(l):
Когда выполняется третий сценарий, переменная экземпляра п по-прежнему имеет значение 10, поэтому код trace (п) выводит значение 10 в окне Output (Вывод). Затем код gotoAndStop (1) перемещает головку воспроизведения на кадр 1, приводя к выполнению сценария кадра 1 во второй раз. На этот раз переменная экземпляра п имеет значение 10, поэтому код trace (п) выводит значение 10 (а не 0) в окне Output (Вывод).