PDA

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


Salut
14.08.2006, 19:02
Здрасте! У меня такая проблема: имеется мувик, который я использую как кнопку, при наведении курсора мувик увеличивается(допустим), при ввыде курсора с его области он уменьшается, но я никак не могу понять как сделать так чтобы при нажатии и последующем ввыде курсора он у меня, например, переворачивался...

Вот мой код на мувике:

on (rollOver) {
this.gotoAndPlay (2);
}
on (rollOut) {
this.gotoAndPlay (16);
}
on (release) {
this.gotoAndPlay (31);
}

при выводе курсора из области мувика у меня происходит rollOut.
Вообщем я знаю что этот код не правильный, но подскажите пожалуйста как бы это можно было бы исправить... :umnik2:

DarkLight
14.08.2006, 19:08
А отпускание кнопки мыши должно быть на мувике или вне его?
Есле вне его, то releaseOutside, если на нем, то в release ставим переменную, а на rollOut проверяем ее значение...

Кстати, лучше вместо конструкций с on писать весь код на основной шкале...

Salut
14.08.2006, 19:27
Спасибо за совет.
Отпускание должно быть на нем, как я понял код такой

on (rollOver) {
this.gotoAndPlay (2);
}
on (rollOut) {
if (x==1) {
this.gotoAndPlay (31);
}else{
this.gotoAndPlay (16);
}

}
on (release) {
this.gotoAndPlay (31);
var x
x=1;
}
При нажатии мувик начинает играть со своего 31 кадра(все верно), но при выводе мышки он опять проигрывает мувик с 31 кадрв получается некое дергание :(

Salut
14.08.2006, 19:31
Ааааа все я понял, код такой:
on (rollOver) {
this.gotoAndPlay (2);
}
on (rollOut) {
if (x==1) {

}else{
this.gotoAndPlay (16);
}

}
on (release) {
this.gotoAndPlay (31);
var x
x=1;
}
и все впорядке, почти, дальше я сам :mosking:

DarkLight
14.08.2006, 19:33
Дерганье? А что должно было быть? Плавный переход?

Salut
14.08.2006, 19:41
Все впорядке как плавный переход сделать я сообразил, но вот проблемка еще одна возникла, вот код:

on (rollOver) {
if (x==1) {
}else{
this.gotoAndPlay (2);
}
}
on (rollOut) {
if (x==1) {
}else{
this.gotoAndPlay (16);
}

}
on (release) {
var x
x=1;
this.gotoAndPlay (31);

}

все пашет,если я нажимаю на мувик он совершает дальнейшие действия, но если я повторно нажимаю на него то он начинает проигрывать их снова, а мне нужно чтобы был некий блок на повторный release.. как его сделать? :umnik2:

DarkLight
14.08.2006, 19:46
Пусть клип называется clip:
(код на основной шкале)
clip.onRollOver = function() {
if (x == 1) {
} else {
this.gotoAndPlay(2);
}
};
clip.onRollOut = function() {
if (x == 1) {
} else {
this.gotoAndPlay(16);
}
};
clip.onRelease = function() {
var x;
x = 1;
this.gotoAndPlay(31);
delete clip.onRelease;
};

Salut
14.08.2006, 19:49
Спасибо огромное, а ты мог бы сказать почему код лучше писать на гл.вр.шкале?

DarkLight
14.08.2006, 19:55
1. Когда кнопок становится много, замучаешься искать код
2. В ActionScript 3 on/onClipEvent не поддерживается - легче будет переносить проект при случае
3. Просто удобнее

Кстати, кое-что подправил в коде:
clip.onRollOver = function():Void {
(x == 1) ? 1 : clip.gotoAndPlay(2);
};
clip.onRollOut = function():Void {
(x == 1) ? 1 : clip.gotoAndPlay(16);
};
clip.onRelease = function():Void {
var x:Number = 1;
clip.gotoAndPlay(31);
delete clip.onRelease;
};

Salut
14.08.2006, 20:09
что то не то, когда release все впорядке, но когда после нажатия выводишь мышку идет rollout и повторно нажать нельзя(т.к. delete был)

DarkLight
14.08.2006, 20:17
а...надо было чтобы только переворот отключался, а нажатие срабатывало? Тогда вместо delete делаем новый онРелиз...

Neosano
14.08.2006, 20:23
DarkLight
ты чегото замудрил гыгыгыгыг =))
Salut
если на кнопку резко нажать и резко отодвинуть получается дёрг. используй nextFrame(); и prevFrame();

Salut
14.08.2006, 21:05
Если честно, то я совсем запутался что делать да как..... :wacko:

DarkLight
14.08.2006, 21:10
Я тоже...
Обьясни для чего нужна кнопка - вот она меняется, а что дальше?
Что именно значит "блок" на повторный Релиз? Больше нельзя нажимать вообще или нажимать можно, но уже без анимации?

Salut
14.08.2006, 21:18
вот исходник , в нем при повторном нажатии на мувик, он начинает играть с 31 кадра, а мне нужно чтобы он был на месте. (чтобы нажимать больше нельзя было пока не нажмется другая кнопка)

DarkLight
14.08.2006, 21:30
что то не то, когда release все впорядке, но когда после нажатия выводишь мышку идет rollout и повторно нажать нельзя(т.к. delete был)
в нем при повторном нажатии на мувик, он начинает играть с 31 кадра, а мне нужно чтобы он был на месте. (чтобы нажимать больше нельзя было пока не нажмется другая кнопка)

Я както не могу эти 2 фразы вместе увязать...
Если надо чтобы больше нажимать было нельзя, удаляем онРелиз
Если надо, чтобы можно было еще нажимать, то в чем вопрос?
Если надо, чтобы можно было нажимать, но на других условиях - вместо удаления онРелиза задаем новый