Вход

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


Doping86
10.01.2009, 09:39
Суть вопроса такова: есть кнопка btn1, нужно, чтобы при переходе на кадр Hit этой кнопки выполнялся переход по URL и кнопка оставалась на кадре Hit, если пользователь находится на URL, присвоенному этой кнопке.
Поиск поюзала, но толком ничего понять не смогла.
Объясните, как это сделать и каким должен быть скрипт?

Zik.
10.01.2009, 10:56
Ээээ.... может место кнопки использовать клип?
заюзать

onRollOver = function() {}
onPress = function(){}

Там в клипе сделать 4 кадра, с имитировать over, down, hit.

Doping86
10.01.2009, 11:02
после onPress=function нужно добавить getURL?
А если кнопок очень много?

Zik.
10.01.2009, 11:04
нууу..... тогда придеться все переделывать в клип


имя нужной кнопки.onPress = function () {
getURL("нужный тебе сайт", "_blank");
}

Doping86
10.01.2009, 11:12
т.е. должен быть мувик, в котором будут сымитированны кадры Up, Over, Down и Hit. Но, насколько я понимаю, в этом мувике еще нужно как то сделать, чтобы на кадре Hit действие останавливалось...

Zik.
10.01.2009, 11:13
что значит действие останавливалось?
вы имеете ввиду кадр?
если да,тогда пишите в этом кадре:

stop();

Wolsh
10.01.2009, 11:39
http://flasher.ru/forum/showthread.php?t=118420
И, пожалуйста, перестаньте делать вид, что у вас чтото переходит на кадр Hit. В этом кадре может быть расположена некая форма, определяющая область клика. Этот кадр кнопки НИКОГДА не отображается. Состоянию "нажата" соответствует кадр Down

Doping86
10.01.2009, 11:48
Получилось, но только между нажатием на кнопку и переходом в ее следующее состояние есть пробел... Как его убрать? На всякий случай, выкладываю исходник, чтобы было понятней.

Doping86
10.01.2009, 11:53
Wolsh, конечно, спасибо за ссылку, но это слишком сложно для того сайта, что меня попросили сделать!

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

Zik.
10.01.2009, 11:59
Doping86, а можно спросить, зачем там каждый раз интервал в десять кадров?
P.S: Doping86, соедините два своих сообщения в одно (чтобы модераторы не ругались).
Кстати, делать третий пустой кадр не нужно, ведь вам нужно сымитировать нажатие и покой кнопки
Вот исходник:

Doping86
10.01.2009, 12:00
В самом мувике?
Его вообще можно и меньше сделать? Просто книга, по которой я учила флеш, в ней советовали мувики через 10 кадров делать

flazher
10.01.2009, 12:02
А почему не 100? Можно вообще без пробелов сделать, результат останется тот же

Doping86
10.01.2009, 12:03
flazher, очень смешно:D это по поводу 100. Нужно спросить у того, кто эту книгу писал.

Zik.
10.01.2009, 12:07
Скорее всего это черная книга, называеться "Основы Action Script", автора не помню.
Скажите, я угадал?

Doping86
10.01.2009, 12:10
Нет, книжка белая, издательства "Из первых рук". Называется "Macromedia Flash 8 Action Script". У меня и первая книга была того же издательства.

Добавлено через 4 минуты
А как сделать, чтобы этот злосчастный мувик не мигал? А то он получается, пока пользователь находится на этой странице, доходит до последнего кадра и останавливается на нем...

flazher
10.01.2009, 12:16
http://www.ykbook.ru/files/store_apendix_big10048_5350.jpg

Эта?
Извиняюсь за пост не по теме :)

Doping86
10.01.2009, 12:20
Она самая.

flazher
10.01.2009, 12:25
Да брали бы Action Script 2.0 для Flash 8 за авторством Jen DeHaan'а, там хоть не советуют оставлять пробелы в 10 кадров :)

Doping86
10.01.2009, 12:28
так все же, как сделать, чтобы этот мувик не мигал постоянно?

Добавлено через 12 минут
ZIK68, у меня ваш исходник не открывается. Пишет ошибку.

Kuruki
10.01.2009, 13:08
Упрощенный пример кнопки из примера Wolsh'a

_up - обычное состояние кнопки, так сказать "не в фокусе"
_over - мышь над кнопкой
_down - нажатие
_hit - область для нажатия. Если не указать, то областью будет служить выше описанное.

10 кадровые "пробелы" нужны для анимации состояний кнопки, например мигание при наведении.
Если анимации нет, то можно удалить пробелы.

Doping86
10.01.2009, 13:18
Kuruki, да, но смысл в чем, что если пользователь находится на странице после клика по кнопке, то на этой кнопке должна быть стрелочка.

Kuruki
10.01.2009, 13:29
Тогда сделайте свое "пользовательское" состояние, например _selected. В него (в кадр) положите клип со стрелочкой. После нажатия переводим кнопку в этот кадр и делаем неактивной (чтоб больше не принимала события мыши)
main_mc.onPress = function () {
getURL("http://thesims3.ru", "_blank");
this.gotoAndStop('_selected');
this.enabled = false;
}

Doping86
10.01.2009, 13:34
это в последнем кадре?

Kuruki
10.01.2009, 13:42
В любом месте сделать новый ключевой кадр с меткой _selected

Правильнее наверное будет так
var pressedFlag:Boolean = false;
main_mc.onPress = function () {
getURL("http://thesims3.ru", "_blank");
pressedFlag = true;
}
main_mc.onRollOut = function () {
if(pressedFlag){
this.gotoAndStop('_selected');
}
}

Doping86
10.01.2009, 13:45
а как добавить на кнопку например, вот такое $PERSONAL_PAGE_LINK$. Это кнопка Профиль и, она, соответственно должна вызывать профиль пользователя

Zik.
10.01.2009, 14:15
ну это уже пхп.

Добавлено через 12 минут
ZIK68, у меня ваш исходник не открывается. Пишет ошибку.
Да потому что я работаю в CS3, а не в восьмой флеше

Doping86
10.01.2009, 14:22
то, что это пхп - понятно, и мне нужно, чтобы при нажатии на кнопку вызывался этот код. это возможно сделать?

Zik.
10.01.2009, 14:24
Сам не знаю, так как с пхп не связан. Будем ждать профи в этом деле (или по крайней мере, кто знает как делать)