PDA

Просмотр полной версии : Помогите с управлением мувика


Q_mir
12.05.2009, 12:13
Привет. Я в AS совсем никакой.:rolleyes:
Ситуация: есть мувик c_mc, у него 10 кадров. На 1-ом, на 5-ом и на 10-ом кадре стоит скрипт stop(); (все в AS2)
Есть кнопка, которая при нажатии проигрывает мувик до кадра со скриптом stop();(простым образом c_mc.play();
соответственно после 10-го кадра возвращает мув на 1-ый кадр.

Так вот: как сделать так, чтоб при нажатии этой же кнопки (в то время как мувик находится на 10 кадре), мувик проигрался назад до 5 кадра и на нем остановился. Спасибо

KiL33
12.05.2009, 19:43
mc.gotoAndPlay(2);
mc.onEnterFrame = function() {
if (mc._currentframe>9) {
clearInterval(_int);
_int = setInterval(mcMove, 30, false);
delete mc.onEnterFrame;
}
};
function mcMove(forward) {
if (forward) {
} else {
if (mc._currentframe>5) {
mc.prevFrame();
trace('Кадр: '+mc._currentframe)
} else {
mc.stop();
}
}
}

Вот такой не самый лучший вариант накидал:)
mc-мувик с анимацией, стоп и плей писать не нужно, только анимация.

Q_mir
12.05.2009, 23:01
Спасибо, KiL33!
Но что-то не идет. что это за строка "_int = setInterval(mcMove, 30, false);"? что такое 30? И нужно ли писать скрипты "stop();" в кадрах 1, 5, 10 самого мувика?
Мне нужно чтобы по нажатию кнопки, pl_btn допустим, мувик mc проигрался с 1-го по 5-й кадр, далее при нажатии с 5-го по 10-й кадр и далее при нажатии с 10-го до 5.
Ну и если можно затем при нажатии с 5-го до 1-го.:away:

Спасибо:victory:

KiL33
13.05.2009, 10:07
Тяжело, сосредоточенно занимаясь своими делами, отвлекаться на другие темы, поэтому вот так простенько сделал, будет время, я переделаю, или кто-нибудь поможет..

KiL33
13.05.2009, 12:45
Замени код..
mc.stop();
btn.onPress = play_mc;
kadr_mc = 5;
txt.autoSize = true;
sec = true;
function play_mc() {
mc.play();
if (sec) {
clearInterval(_int2);
first_play = true;
mc.onEnterFrame = function() {
kadr = mc._currentframe;
txt.text = 'Стаю на '+kadr+' кадре';
if (mc._currentframe>=11) {
_int = setInterval(mcMove, 30, false);
delete mc.onEnterFrame;
}
};
} else {
_int2 = setInterval(mcMove, 30, false);
first_play = false;
sec = true;
kadr_mc = 1;
}
function mcMove() {
if (first_play) {
kadr_mc = 5;
sec = false;
}
if (mc._currentframe>kadr_mc) {
mc.prevFrame();
kadr = mc._currentframe;
txt.text = 'Стаю на '+kadr+' кадре';
//trace('Кадр: '+mc._currentframe);
} else {
clearInterval(_int);
}
}
}

З.Ы. вариант, не есть какой, но если большего не надо и им можно воспользоваться:)

Q_mir
13.05.2009, 23:52
Спасибыч! Будем пробовать:yahoo: