PDA

Просмотр полной версии : Переход к следующему ключевому кадру


R.P.McMurphy
06.03.2007, 12:12
Как можно перейти к следующему ключевому кадру?
Из команд, с помощью которых можно перейти к кадру, знаю только gotoAndPlay, но там надо знать номер кадра или его лабел.
Можно ли как-нибудь узнать номер следующего ключевого кадра, или есть другие способы перехода к ним? :confused:

etc
06.03.2007, 12:31
Ключевого кадра чего? Твина? Нет, нельзя, надо ставить метку.

Север
06.03.2007, 14:25
1. Выбираешь ключевой кадр на временной диаграмме (кинолента такая)
2. Внизу открываешь раздел Properties
3. В поле Frames прописываешь уникальное имя для этого ключевого кадра, например "frame_1"
4. Для перехода на кадр используешь

gotoAndStop("frame1");
// или gotoAndPlay("frame1");
// в зависимости от потребностей

R.P.McMurphy
06.03.2007, 19:00
Да, этот способ я уже понял, только он не очень удобен в ситуации, когда есть k ключевых кадров (k - очень большое).
Собственно, есть некий ролик, представляющий собой последовательность картинок (слайдов) и некий голос за кадром (типа презентации). При этом каждый слайд может содержать в себе несколько ключевых кадров. Необходимо сделать кнопку навигации для перехода между слайдами.

Я делаю: создаю отдельный слой с элементами навигации (кнопки след. слайд и пред. слайд), разбиваю там ключевые кадры в соответствии со слайдами. Затем даю этим ключевым кадрам имена и прописываю в каждом кадре у каждой кнопки что она ссылается на кадр с таким-то именем.

Это единственный способ?

LeXi42006
06.03.2007, 19:09
Нет, еще можно прописать номер кадра вместо "frame1".

R.P.McMurphy
06.03.2007, 19:12
Ну, номер кадра это совсем неудобно - потом при вставлении пары кадров (а такое возможно) придется менять номера во всех последующих кнопках... :eek:

Мыкыта
06.03.2007, 19:26
еще способ динамически создавать слайд шоу

R.P.McMurphy
06.03.2007, 19:33
еще способ динамически создавать слайд шоу

а это что такое и как делается?

Мыкыта
06.03.2007, 19:50
http://www.intuit.ru/department/internet/flashmxascript/7/

LeXi42006
06.03.2007, 19:52
A nextFrame не подходит?

techno
06.03.2007, 20:13
Можно назвать кадры типа 'kad1','kad2','kad3'... и т.д.
и вызывать
gotoAndPlay('kad'+nowkad)
nowkad++

CorC
07.03.2007, 10:31
A nextFrame не подходит?
он разве на ключевой переходит?

R.P.McMurphy
07.03.2007, 11:49
он разве на ключевой переходит?

в том и дело, что просто на следующий :(

R.P.McMurphy
07.03.2007, 11:51
Можно назвать кадры типа 'kad1','kad2','kad3'... и т.д.
и вызывать
gotoAndPlay('kad'+nowkad)
nowkad++

Да, пожалуй это оптимальный способ.
Интересно, а почему adobe не реализовали функцию nextKeyFrame...

etc
07.03.2007, 12:05
Да, пожалуй это оптимальный способ.
Интересно, а почему adobe не реализовали функцию nextKeyFrame...
Ровно по той же причине, почему не сделали функцию «сделатьКруто()».
Вы же нашли оптимальное решение, состоящее из двух строк? Нашли. Вот поэтому функции и нет.

R.P.McMurphy
07.03.2007, 12:11
Вы же нашли оптимальное решение, состоящее из двух строк? Нашли. Вот поэтому функции и нет.

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

etc
07.03.2007, 12:25
В swf слоев нет, а ключевых кадров твинов на 35—38-ом фрейме может быть много и на разных слоях. К какому переходить прикажете, а?

R.P.McMurphy
07.03.2007, 12:56
В swf слоев нет, а ключевых кадров твинов на 35—38-ом фрейме может быть много и на разных слоях. К какому переходить прикажете, а?

Я, к сожалению, flash плохо знаю и мне трудно вести беседу в приведенной терминологии...
Но, если бы судествовал инструмент перехода к следующему ключевому кадру на текущем слое (т.е. на слое, к объектам которого мы приписываем скрипт), было бы все ок (для данной задачи, безусловно).
Хотя, без ограничения общности можно было бы в функцию передавать параметром имя слоя.

etc
07.03.2007, 13:01
В swf нет никаких слоев. Код не привязывается к слою, совершенно.

R.P.McMurphy
07.03.2007, 13:03
В swf нет никаких слоев. Код не привязывается к слою, совершенно.

В таком случае вопрос решился и все встало на свои места.
Спасибо за ликбез!