Просмотр полной версии : правильность работы кнопок в меню
Здравствуюте, уважаемые!!!!
У меня небольшая проблема с меню, использовал этот код
btm1.onPress = fix;
btm2.onPress = fix;
btm3.onPress = fix;
var lastPressed:MovieClip = null;
function fix()
{
lastPressed.enabled = true;
lastPressed.gotoAndPlay("_up");
lastPressed = this;
lastPressed.enabled = false;
trace(this._name)
}
кнопки работают как надо!
а если код продолжить
_root.btm1.onPress = function() {
_root.images_cont.attachMovie("red","images_cont",this.getNextHighestDepth());
};
_root.btm2.onPress = function() {
_root.images_cont.attachMovie ("green","images_cont",this.getNextHighestDepth());
};
_root.btm3.onPress = function() {
_root.images_cont.attachMovie("yellow","images_cont",this.getNextHighestDepth());
};
кнопки работают не правельно, подскажите пожалуйста, что делать.
Для наглядности прилагается архивчик с файлами, очень надеюсь на вашу помощь ))
А как должно быть правильно?
Где архивчик?
забыл сразу загрузить архивчик с файлом, поэтому залил на http://stream.***********/9904856
Добавлено через 1 минуту
кнопки в файле "2" правильно работают, а кнопки в файле "1" не правильно работают
Добавлено через 1 час 55 минут
вот если код не дополнять onPress , тогда все нормально , но тогда не понятно как вызвать действие при нажатии на кнопку
Dr_Bra, прошу прощения за бестакность, но "правельно" пишут обычно как "правильно". И это факт. От него никуда не денешься. Как бы Вам этого не хотелось. Можно хотя бы в Word'e проверять орфографию =) #$%
Согласен, dimarik, вот только как быть с кодом? Кнопки - очень важная деталь для вэб-сайта. А когда они работают не так, как надо, общая идея дизайна теряется (((
Добавлено через 6 часов 34 минуты
ПОМОГИТЕЕЕ
Добавлено через 21 час 34 минуты
неужели эта задача такая сложная?
здесь есть кто-нибудь (((((((((((((((((((
nOobCrafter
08.01.2009, 14:33
Могу выдвинуть предположение что дело в том что ты на одну кнопку вешаешь 2 действия одновременно, в результате чего выполняется только последнее)) Упрощенный вариант:
/*function fix()
{
lastPressed.enabled = true;
lastPressed.gotoAndPlay("_up");
lastPressed = this;
lastPressed.enabled = false;
trace(this._name)
}*/
btm1.onPress = function() {
lastPressed.enabled = true;
lastPressed.gotoAndPlay("_up");
lastPressed = this;
lastPressed.enabled = false;
trace(this._name)
_root.images_cont.attachMovie("red","images_cont",this.getNextHighestDepth());
};
btm2.onPress = function() {
lastPressed.enabled = true;
lastPressed.gotoAndPlay("_up");
lastPressed = this;
lastPressed.enabled = false;
trace(this._name)
_root.images_cont.attachMovie ("green","images_cont",this.getNextHighestDepth());
};
btm3.onPress = function() {
lastPressed.enabled = true;
lastPressed.gotoAndPlay("_up");
lastPressed = this;
lastPressed.enabled = false;
trace(this._name)
_root.images_cont.attachMovie("yellow","images_cont",this.getNextHighestDepth());
};
В идеале можно оставить как было, то есть просто в функци fix добавить небольшой фильтр, который бы добавлял нужной кнопке нужный фон.
спасибо большое, я думал что не дождусь никаких советов, сейчас попробую ))))
Добавлено через 9 минут
nOobCrafter, изменил код, но, к сожалению, не помогло ((
а можно про фильт немного подробнее, пожалуйста ..
nOobCrafter
08.01.2009, 15:31
Значит неправильно вставил код(( Или я непраивльно понял что ты хочешь.
У меня при нажатии на кнопку меняется фон и трейсом выводит номер нажатой кнопки, а что ты хочешь?
function fix()
удали эту функцию, и все что ниже, потом вставь мой код. Пару верхних точек должно оставться.
Про фильтр: ставишь условие, если кнопка такая то, то присоединить фон такой то, если нет то проверка опять.
замысел таков:
1) пользователь навел курсор на кнопку, кнопка проигрывается до середины. Если кнопка не была нажата и курсор был отведён, кнопка проигрывается до конца.
2) пользователь навел курсор на кнопку, кнопка проигрывается до середины, затем нажал на кнопку, кнопка зафиксировалась. Пока не будет нажата другая кнопка, нажатая будет в зафиксированном положении.
3) При нажатии на следующую кнопку, предыдущая проигрывается до конца, а та которую нажали до середины.
Как-то так..
в архиве, который я залил на http://stream.***********/9904856 файл 2 показывает как должна работать кнопка
gloomyBrain
08.01.2009, 16:30
2 nOobCrafter
вроде как попроще выполнять функция fix, а затем дополнительные действия:
var lastPressed:MovieClip = null;
function fix()
{
lastPressed.enabled = true;
lastPressed.gotoAndPlay("_up");
lastPressed = this;
lastPressed.enabled = false;
trace(this._name)
}
btm1.onPress = function(){
fix();
_root.images_cont.attachMovie("red","images_cont",this.getNextHighestDepth());
}
// остальные - по аналогии
gloomyBrain, а у вас получилось??
Или вы не пробовали добавить этот код к файлу который я загрузил??
Может я что-то по своей неопытности делаю не правильно, но у меня не работает ((((
посмотрите плиз..
gloomyBrain
08.01.2009, 16:50
2 Dr_Bra
То есть Вы предлагаете мне:
- создать новый файл
- нарисовать кнопочку
- открыть фотошоп
- нарисовать 3 фона
- написать рабочий код
- выложить ИСХОДНИК сюда
я Вас правильно понял? Может будет проще, если Вы внятно напишите то, чего хотите добиться? или Ваш исходник выложите? а там уже можно и посмотреть =)
gloomyBrain, архивчик с файлами здесь лежит http://stream.***********/9904856
Добавлено через 4 минуты
я его сразу забыл вложить в тему, поэтому загрузил уже вдогонку
Добавлено через 5 минут
в архиве два файла, там все нарисовано, только код подправить, буду очень признателен ))
http://stream.***********/9904856
Mnilionic
08.01.2009, 21:08
var lastPressed:MovieClip = null;
function push_the_button(){
trace(this._name)
lastPressed.enabled = true;
lastPressed.gotoAndPlay("_up");
lastPressed = this;
lastPressed.enabled = false;
_root.images_cont.attachMovie(this.param, "images_cont", 10);
}
btm1.onPress = push_the_button;
btn1.param = 'red';
btm2.onPress = push_the_button;
btn2.param = 'green';
btm3.onPress = push_the_button;
btn3.param = 'yellow';
код не тестировал, а версия вашего проекта не соответсвует моей версии редактора.
Mnilionic, спасибо огромное ))))) как по нотам !!!!
Добавлено через 21 час 8 минут
А если с помощью этого кода нужно подгружать файлы командой loadMovie.
Если в коде заменить attachMovie на loadMovie, у меня не получилось ожидаемого эффекта, подскажите пожалуйста..
Mnilionic
10.01.2009, 15:10
var mcl:MovieClipLoader = new MovieClipLoader();
var box:MovieClip = this.createEmptyMovieClip('mc_box', 1);
box._y = 50;
var lastPressed:MovieClip = null;
function push_the_button(){
trace(this._name)
lastPressed.enabled = true;
lastPressed.gotoAndPlay("_up");
lastPressed = this;
lastPressed.enabled = false;
mcl.loadClip(this.param + '.swf', box);
}
btn1.onPress = push_the_button;
btn1.param = 'red';
btn2.onPress = push_the_button;
btn2.param = 'green';
btn3.onPress = push_the_button;
btn3.param = 'yellow';
очень помогли, большое спасибо ))
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.