ActionScript: повторить операцию много раз
Вы хотите выполнить задачу несколько раз в рамках одного кадра. Используйте цикл выполнять ту же работу несколько раз в рамках одного кадра. Например, вы можете использовать для заявления: для (var я = 0; я <10; я + +) (/ / Отображение стоимости i. трассировки (я);) Если вы хотите выполнить одно действие (или несколько его вариантов) несколько раз в отдельный кадр, используйте циклов заявление сделать код более кратким, легче читать, и легче обновлять. Можно использовать, а заявление или заявление для этой цели, но в целом за заявление, является лучшим выбором. Оба заявления достичь того же результата, однако это выступление для более компактной и более привычными для большинства программистов. Синтаксис в заявлении для состоит из пяти основных частей: В по ключевому слову Каждый на заявление должно начинаться с по ключевому слову. Инициализация слова В цикле, как правило, используется индекс переменной (a.k.a. цикл борьбы), что создается, когда заявление впервые столкнулись. В инициализации выполняется только один раз независимо от того, сколько раз цикл повторяется. Проверка слова А цикл должен включать испытания выражения, которая возвращает или вымышленные. Испытание выражение оценивается один раз каждый раз через цикл. В целом, испытания выражения сравниваются индекс переменной другого значения, как, например, максимальное число итераций цикла. Общее выражение для оценки должны относится к заявлению для тела для выполнения (отличие этого делать, с... А петля, которая выполняет по крайней мере один раз, даже если испытание выражение является ложным). С другой стороны, если испытание выражение никогда не становится ложным, вы создадите бесконечного цикла, в результате чего предупреждения о том, что Flash Player работает медленно (которая появится после 15 секунд). Обновление выражения Обновление выражение обычно обновляет значение переменной, используемых в тесте выражения, чтобы в определенный момент испытания выражение становится ложным, и цикл заканчивается. Обновление выражение выполняется один раз каждый раз через цикл. В бесконечной петли зачастую бывает, не обновите соответствующие переменные в обновленном выражения (обычно же переменная используется в тесте выражение). Заявление органа В заявлении органа блок substatements помещены в фигурные скобки, которое выполняется каждый раз через цикл. Если испытание выражение никогда не верно, то заявление для тела не будет казнен. В по ключевому слову необходимо в первую очередь, и должны сопровождаться инициализации, тестирования и обновления замкнутые выражения в скобках. Запятой должны разделять три выражения друг от друга (хотя инициализации, тестирования и обновления заявления являются необязательными, то запятой являются обязательными). Остальная часть за цикл состоит из заявления органа помещены в фигурные скобки. В общем виде: для (инициализации; испытания; обновление) () заявление орган Вот пример о том, что за результаты число 0 на 999. Поскольку я индекса переменной является местной переменной, мы предисловии он с ключевого слова var в инициализации выражения. для (var я = 0; я <1000; я + +) (трассировки (я);) трассировки ( "Это конец.") ; Чтобы понять в заявление, вы можете следовать вместе с ActionScript переводчика, как он обрабатывает команду. В предыдущем Например, для ключевого слова рассказывает переводчика выполнять заявления в петлю за тех пор, пока условное выражение верно. В выражение инициализации выполняется только один раз, и в нем переменной я к 0. Далее, переводчик проверяет испытания выражение (я <1000). Поскольку я это 0, что меньше 1000, оценивает выражение верно и для трассировки () действия в заявлении для органа казнены. В ActionScript переводчик затем выполняет обновления, в данном случае я + +, который я надбавок к 1. Переводчик затем повторяет процесс с верхней части петли (но пропускает время инициализации шага). Так что переводчик снова проверяет ли испытания выражение верно, и, если да, выполняет орган заявление еще раз. Затем он выполняет обновления снова. Этот процесс повторяется до тех пор, пока испытания выражение не верно. Когда цикл завершается, выполнение продолжается с команды, независимо от последующих цикла. Как инициализации и обновления выражения можно включить несколько действий, разделенных запятыми. В следующем примере я одновременно увеличивается и decrements j, и отображает их значения в окне Результат: для (var я = 0, j = 10; я <10; я + +, j --) (трассировки ( "это я" + я); трассировки ( "j является" + к);) В предыдущем примере это не то же самое, как с помощью двух вложенных заявления (которое показано в следующем блоке кода). Кроме того, общие для использования вложенных для выступлений. Когда вы используете вложенные в заявлении, использовать другой индекс, чем переменная используется в удаленных по цепи. В конвенции, удаленный за цикл использует переменную я, и вложенные в цикл использует переменную j. Например: в (я var = 1; я <= 3; я + +) (для (var j = 1; j <= 2; j + +) (трассировки (я + "X" + j + "=" + (я * к));)) Предыдущий пример показывает следующую таблицу умножения в окне Результат: 1 X 1 = 1 1 Х 2 = 2 2 X 1 = 2 2 Х 2 = 4 3 X 1 = 3 3 Х 2 = 6 Можно вложить несколько уровней для выступлений. По договоренности, каждый дополнительный уровень гнездования использует следующий алфавитном характер как индекс переменной. Таким образом, третий уровень вложенных выступлений, как правило, используется как к индекса переменной: в (я var = 1; я <= 3; я + +) (для (var j = 1; j <= 3; j + +) (для (к var = 1; к <= 3; т. + +) (трассировки (я + "X" + j + "X" + т. + "=" + (я * j * л));))) Кроме того, можно использовать и для выступления петлю назад: / / счетчик назад с 10 на 1. в (я var = 10; я> 0; я --) (трассировки (я);) Вы не должны использовать для заявления для выполнения задач с течением времени. Многие программисты делаем ошибку, пытаясь использовать для выступления живой фильм клипы. Например: для (var я = 0; я <20; я + +) (myMovieClip._x + = 10;) Хотя предыдущий код перемещает фильма вырезан 200 пикселей право его отправной точкой, все обновления происходят в том же фрейме. Существуют две проблемы с этим. Прежде всего, этап обновления только раз за кадр, это только последнего обновления показано на стадии (в результате чего фильм клип прыгать 200 пикселей вдруг вместо продвижения гладко в 20 шагов). И во-вторых, даже если этап обновления чаще каждой итерации путем за цикл занимает всего несколько миллисекунд, так что анимация будет происходить слишком быстро. За действия, которые нужно проходить с течением времени, использовать onEnterFrame () обработчик. Кроме того, жесткая повторять петли не должны использоваться для выполнения длительных процессов (всего того, что принимает более доли секунды). В Flash Player отображает предупреждение, когда один цикл выполняет более 15 секунд. Использование onEnterFrame () обработчик или setInterval () функция позволяет избежать предупреждающее сообщение и Flash позволяет выполнять другие действия в дополнение к неоднократные действия, которые являются частью цикла. в этой статье идет речь добавил Габриэль Савимби
|
|||
|