Помощь · Поиск · Пользователи · Календарь
Полная версия этой страницы: Задачка с анимацией. Помогите решить, пожалуйста!
Flash Zone Forum > Macromedia Flash > ActionScript
membrana_ka
Здравствуйте, дорогие флешеры!

Скажу сразу, что я хоть и не совсем чайник во флеш, но мне еще далеко до уверенного пользователя , поэтому если знаете, как решить мою задачку, то пишите, пожалуйста, подоступнее! Заранее спасибо! Так вот в чем, собственно, задачка:

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

Я вроде как в основном придумала, у меня внутри кнопки мувиклип. При нажатии на кнопку отправляюсь к нужному фрейму, в котором человечек стоит и машет ручкой. Но как мне при этом остановить движение кнопки (motion_tween) из стороны в сторону?
Пожалуйста, помогите! Это очень срочно!

В идеале, конечно, хотелось бы при повторном клике на человечка сделать так, чтобы он продолжал идти с этого места, но возможно ли это? Но мне хотя бы основное осуществить.

Еще раз заранее всем огромное спасибо!!!
MustLive
Цитата
В идеале, конечно, хотелось бы при повторном клике на человечка сделать так, чтобы он продолжал идти с этого места, но возможно ли это? Но мне хотя бы основное осуществить.

membrana_ka

Естественно, это всё можно реализовать. В целом тебе понадобятся следующие анимации (которые или самостоятельно нарисуешь, или найдёшь исполнителя): анимация ходьбы, поворота в противоположную сторону и остановки с маханием рукою. Замечу, что из первых двух анимаций (ходьбы и поворота) ты сделаешь копии с движением в противоположную сторону. Сами анимации можно нарисовать или покадровой анимацией (причём только в некоторых местах, а основной упор на мовшон твины), или мовшон твином - как будет удобно.

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

Далее ты используешь мувиклип. Никаких кнопок, только мувиклип, для которого и будет установлен обработчик нажатия. Всю анимацию размести в мувике (назови объект в панели свойств mc). Сам код ставь в кадр (на таймлайне):

Код
state = 1;
_root.mc.onRelease = function() {
if (state == 1) {
_root.mc.stop();
state = 0;
}
else {
_root.mc.play();
state = 1;
}
}

Это код на AS1/AS2. Он будет останавливать/запускать анимацию в мувике. О том как сделать движение с одновременной анимацией ног можешь прочитать в различных темах на форуме, где мы обсуждали эту тему.
membrana_ka
MustLive, Вы меня, пожалуйста, извините... но я не поняла смысла Вашего сообщения. Я прошу помочь мне с конкретной задачей.
membrana_ka
А что этот код даст?
membrana_ka
Т. е. получится сделать так, что анимация внутри мувиклипа будет идти, а motion tween остановится? Мне вот необходимо именно этого добиться.
MustLive
Цитата
А что этот код даст?

Это даст то, что я описал. Ты начала читать мой пост ещё до того, как я его дописал (т.к. меня в это время отвлекли родственники и я запостил часть текста, а потом дописал оставшуюся часть). Так что весь мой пост прочитай и принимайся за работу.

Цитата
Т. е. получится сделать так, что анимация внутри мувиклипа будет идти, а motion tween остановится? Мне вот необходимо именно этого добиться.

Ты можешь остановить таким образом любую анимацию. Если будет вложенная анимация (а движение ног будет вложенной по отношению к движению по экрану), то её точно также, когда её сделаешь, будешь останавливать по нажатию. Т.е. помимо _root.mc.stop(); также будет и _root.mc.nogi.stop(); и т.д.

При этом данный вариант - это только для начала. Потом вместо простой остановки ты сделаешь ещё и вкл./выкл. анимации махания рукой.
membrana_ka
Спасибо большое! Попробую разобраться.
membrana_ka
Цитата
При этом данный вариант - это только для начала. Потом вместо простой остановки ты сделаешь ещё и вкл./выкл. анимации махания рукой.


А как этого вкл./выкл. добиться?
membrana_ka
А как правильно прописывать, если мне нужно и mc, и mc.nogi остановить/включить одновременно?
HaWK
Вот так можно:

Код
var state:Boolean = true;
_root.onEnterFrame = function() {
   if(state) {
       mc._x ++;|
   }
}

_root.mc.onRelease = function() {
   state = false;
   mc.nogi.stop();
   mc.stop();
}
membrana_ka
Спасибо вам, ребят! Я немножко по-другому прописала, но у меня все работает теперь. Но тоже проблему через регулировку видимости решила. А как можно сделать так, чтобы при задействовании мувика с человечком, машущем рукой, при следующем клике задействовался мувик с еще какой-нибудь анимацией? Как бы по очереди?
MustLive
membrana_ka

Всегда пожалуйста.

Цитата
А как можно сделать так, чтобы при задействовании мувика с человечком, машущем рукой, при следующем клике задействовался мувик с еще какой-нибудь анимацией? Как бы по очереди?

Нужно написать соответствующий AS код.

Если тебе нужно, чтобы не сразу после первого мувика с анимацией начинался второй, а именно после клика (два мувика по очереди), то тогда напиши следующий код (в кадре). С использованием переменной состояния state, как в предыдущем примере кода. Аналогично можешь сделать для большего количества мувиков.

Код
state = 1;
_root.mc.onRelease = function() {
    if (state == 1) {
        _root.mc.mc1.play();
        state = 0;
    }
    else {
        _root.mc.mc2.play();
        state = 1;
    }
}

Где у тебя на сцене находится мувик mc, являющийся контейнером - в нём находятся мувики с анимацией mc1 и mc2, в первом кадре (пустом) которых стоит stop(); (чтобы они изначально не проигрывались) и при клике поочерёдно будут проигрываться эти анимации (при необходимости можно также останавливать другую анимацию указав stop() для соответствующих мувиков).
Русская версия IP.Board © 2001-2013 IPS, Inc.