Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Проблема с кнопкой! (http://www.flasher.ru/forum/showthread.php?t=83749)

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 был)


Часовой пояс GMT +4, время: 11:03.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.