PDA

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


Yayo
07.06.2004, 05:23
Как сделать, чтобы первый кадр мува проигрывался только при первом обращении к нему,
а в последующих обращениях мув сразу начинался со второго кадра?

если конкретнее то так:

На первом кадре сцены кнопка (нажатие которой приводит к переходу на второй кадр) и мувик (mov1) с застопоренным
первым кадром. при переходе на второй кадр сцены нажатием кнопки находящейся на первом кадре) начинает проигрываться mov2 который на втором кадре и находится. А на кнопке которая находится во втором кадре висит скрипт, который, вроде как, должен перейти на первый кадр и начать проигрывать mov1 со второго кадра, но этого почему-то не происходит. :confused:

скрипт кнопки на втором кадре такой:

on (press) {
_root.gotoAndStop(1);
_root.mov1.gotoAndPlay(2);
}

Обе кнопки запиханы в мувик и вынесены насцену (просто так требует ситуация, которую я отделил от всей системы).


Помогите ламерюге пожайлуста.

Вот исходник:

sergwizard
07.06.2004, 18:18
on (press) {
_root.gotoAndStop(1);
_root.mov1.gotoAndPlay(2);
}
Такой код не проканывает потому, что ты из кнопки, расположенной во втором фрейме обращаешься к мувику ("mov1") в первом фрейме. В момент выполнения этого кода, флэшка просто не видит этого мувика.
Обойти это можно таким способом:

Yayo
08.06.2004, 02:10
sergwizard благодарю за попытку помочь.
Нельзя ли пояснить принцип действия строк на первом кадре сцены

this.onEnterFrame = function() {
if (go) {
mov1.play();
}
};

и что такое "go"?

_root.go = true;

На сколько я понял скрипт на последнем кадре mov1 возвращает "go" значение false,
а скрипт на кнопке во втором кадре возвращает "go" значение true, тем самым при переходе
на первый кадр клип mov1 начнет проигрываться, т.к. условие первого кадра выполняется (все, что я понял из этой строчки
это, что при условии если go - true то mov1 начинает воспроизводиться).

Но, проигрываться он начинает, все таки, с первого кадра, а мне необходимо чтобы первый кадр выводился
только при первом обращении к mov1, а все следующие разы не выводился вовсе.
Я пробовал эксперементировать, но добиться желаемого эффекта мне не удалось, скорее всего это связано с непониманием вышеизложенного кода. Pleeeeeeeeease help!

Штрек
08.06.2004, 02:22
go - идти, двигаться. :p

sergwizard
08.06.2004, 02:47
"go" - в данном случае, просто переменная, принимающая значения или "true" или "false". И, в зависимости от значения этой переменной, "mov1" или стоит или гуляет.
Ну, если ты хочешь, чтобы он начинал проигрываться обязательно со второго фрейма, напиши в последнем фрейме mov1 так: go = false; gotoAndStop(2);
И во втором фрейме опять то же самое:
this.onEnterFrame = function() {
if (go) {
mov1.gotoAndPlay(2);
}
};
Или, лучше всего, - сделай пустой MovieClip, который на EnterFrame будет проверять значение "go" и управлять клипом "mov1".

Yayo
08.06.2004, 04:18
Ну загнал в темный лес ночью и сказал лови зайца руками.
У меня с экшн скриптом беда, я знаю совсем небольшой набор команд и пытаюсь этими знаниями добиваться желаемого эффекта. Как можно наблюдать на этом примере этих знаний явно маловато, поэтому я и попросил прокоментировать кусок кода. Вот посидел сейчас, потыкался, ниче не понимаю, че к чему, не хотит работать :confused: .

Плиииииз, если не трудно, на имеющемся исходнике, ткни пальцем, неучу, чего куда воткнуть :rolleyes: .

Yayo
09.06.2004, 04:17
все, получилось! :)
сделал пустой клип и прицепил к нему
onClipEvent (load) {
if (_root.go) {
mov1.gotoAndPlay(2);
}
}
а на втором кадре, в первый кадр mov2 запихал
go=true;

врое заработало :)
пасиб за совет.