Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Переходы между кадрами и динамически созданные объекты (http://www.flasher.ru/forum/showthread.php?t=113930)

ViZ0R 14.07.2008 11:51

Переходы между кадрами и динамически созданные объекты
 
не могу понять следующий момент: если допустим при переходе к следующему ключевому кадру содержимое кадра полностью меняется, то при этом ранее динамически созданные объекты отображаются поверх нового ключевого кадра. Так и должно быть? т.е. нужно самому в коде убирать ранне созданные символы?

И еще один вопросик, если есть несколько фремов на основной временной шкале и етсь фремы у символов, то в каком порядке они проигрываются? Сначала первый кадр основной сцены (или слоя с кодом), потом первый кадр следующего объекта и так далее по иерархии, потом переход ко второму кадру и все повторяется?

И кстати почему первый кадр проигрывается один раз?
:(

ViZ0R 14.07.2008 20:28

помогите кто-нибудь, в особенности интересует ответ на первый вопрос, при смене ключевых кадров диманически созданные объекты не исчезают, т.е. ими нужно самому управлять?))

Alex_beginner 14.07.2008 20:45

Цитата:

при смене ключевых кадров диманически созданные объекты не исчезают, т.е. ими нужно самому управлять?))
Ответ: Безусловно. Флеш как и человек, один раз увидев что либо помнит об этом в будущем. Поэтому, необходимо вручную удалять ранее (на предыдущих кадрах) созданные объекты. И потом, что такое смена ключевого кадра это всего лишь выполенение добавочного кода на кадре-сменьщике, который вовсе может не влиять на ранее созданные объекты.

iNils 14.07.2008 22:03

Ключевые кадры описывают только те клипы, которые были на таймлайне в данном кадре, на другие они не влияют.

Цитата:

если есть несколько фремов на основной временной шкале и етсь фремы у символов, то в каком порядке они проигрываются
У мувиклипов независимый таймлайн относительно предка. Если у предка 3 кадра, а у потомка 6 (при условии, что ключевой кадр один), то первый три кадра будут проигрываться синхронно, потом предок начнет проигрывать себя заново, а потомок проиграет кадры 4-6. Потом все заново.
Цитата:

И кстати почему первый кадр проигрывается один раз?
Видимо где-то стоит gotoAndPlay (2)

Wolsh 15.07.2008 07:34

Цитата:

если есть несколько фремов на основной временной шкале и етсь фремы у символов, то в каком порядке они проигрываются
Flash ведь сначала просчитывает все изменения, которые будут отображены, для текущего кадра в памяти, в частности выполняет сценарий для этого кадра, и уже потом выводит картинку, когда придет время смены изображения (переход к следующему кадру). Так что отображаются изменения во всех вложенных клипах одновременно. А вот в выполнении кода есть какая-то иерархия между вложенными экземплярами с кодом на таймлайне?

qazwsx 15.07.2008 11:10

Иногда бывает компилятор может ругатся... Если функция описана в слое который находится ниже слоя в котором она вызывается o_O

iNils 15.07.2008 11:20

Цитата:

Сообщение от qazwsx (Сообщение 752095)
Иногда бывает компилятор может ругатся... Если функция описана в слое который находится ниже слоя в котором она вызывается o_O

Весь код надо писать в одном кадра.

Alex_beginner 15.07.2008 12:17

Цитата:

Сообщение от qazwsx (Сообщение 752095)
Иногда бывает компилятор может ругатся... Если функция описана в слое который находится ниже слоя в котором она вызывается o_O

Если код распределен по кадрам нескольких слоев, то выполнен он будет сверху вниз. Причем на последовательность исполнения его фрагментов не повлияет порядок загрузки элементов (сверху вниз или снизу вверх), установленный для данного фильма (отвечает за это опция Load Order закладки Flash панели Publish Settings). Т.е. по сути говоря, функция инициализированная на нижнем слое не может быть вызвана из слоя находящегося выше.
Если код содержится на кадрах вложенных клипов, то порядок его выполнения будет определяться глубинами, на которых расположены соответствующие клипы. Чем выше находится экземпляр, тем раньше будет проделан связанный с ним код. Сценарии вложенных клипов выполняются всегда после сценариев содержащей их временной диаграммы. Это означает, что Вы не можете обратиться к свойству вложенного клипа, если оно инициализируется при выполнении расположенного на его временной диаграмме кода. Просто обращение произойдет до того, как связанный с клипом сценарий будет проделан.
Распределение кода по кадрам нескольких слоев еще более нежелательно, чем его рассредоточение по кадрам одного слоя. Наличие же кода на временных диаграммах вложенных клипов является допустимым лишь в случае компонентов. Вообще же в идеале нужно стремиться к полной централизации сценария.

ViZ0R 15.07.2008 15:51

Цитата:

Сообщение от iNils (Сообщение 752044)
Видимо где-то стоит gotoAndPlay (2)

gotoAndPlay нету, я поставил trace("frame 1"); - выводится один раз

Alex_beginner 15.07.2008 15:56

ViZOR! Вы все вложенные клипы просмотрели?

ViZ0R 15.07.2008 16:03

у меня есть слой actions, на нем весь код, если там поставить для фрейма 1: trace("frame 1"); то вывод будет один раз. тАк и должно быть?

Alex_beginner 15.07.2008 16:07

1. Сколько у Вас кадров на actions?
2. Может Вы лучше исходник выложите, если сочтете это допустимым.

ViZ0R 15.07.2008 16:37

приаттачил (пароль на файл в привате)


исправил, правда рабоатет немного по другому из-за конвертации

Alex_beginner 15.07.2008 17:04

ViZOR! Прошу меня извинить но у меня Flash 8 (CS3 не имею), поэтому прошу выложить файл в формате Flash 8.

ViZ0R 15.07.2008 17:46

см пост выше)

Alex_beginner 15.07.2008 17:51

ViZOR! Вышла небольшая шутка. Вы исправили свои пост, перевложив вложение, а я в Форуме ждал изменений в отображении строк с темами. Я так ждат мог очень долго:D:D

То, что касается на счет кода: у Вас есть 3 ключевых кадра, на втором есть команда stop(); Вопрос: На каком кадре остановиться выполнение кода?!!:)

ViZ0R 15.07.2008 17:59

все, понял)) глюканул просто...кстати код ведь только в ключевых кадрах мождет располагаться?

Alex_beginner 15.07.2008 18:15

Вы можете попробовать создать обычный кадр и написать в нем что-нибудь - он тут же будет преобразован в ключевой и на нем появиться буква "a". Ну мол "а" это ActionScript (мулька создателей Флеша).


Часовой пояс GMT +4, время: 22:44.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.