Форум 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)
-   -   горизонтальный scrolling меню (http://www.flasher.ru/forum/showthread.php?t=124451)

Sever_a 30.04.2009 01:54

горизонтальный scrolling меню
 
Народ привет!
Есть вот какой вопрос: нарисовал меню, нужен ему был скрол сделал:
Код AS1/AS2:

mouseX = _xmouse;
menuX = main_menu._x;
 
if (mouseX > 485) {
          diff = (mouseX-485)/15;
}
if (mouseX < 365) {
          diff = (365-mouseX)/15;
}
if (mouseX <= 365 && menuX <= 465) {
          setProperty("main_menu", _x, menuX+diff);
}
if (mouseX >= 485 && menuX >= 235) {
          setProperty("main_menu", _x, menuX-diff);
}
if (main_menu._x >= 465) {
          main_menu._x = 465;
} else if (main_menu._x <= 235) {
          main_menu._x = 235;
}
gotoAndPlay(2);

но вот в чем проблема при старте ролика, он сразу ловит координаты мыши, даже если она за пределами ролика и уводит меню в сторону, как сделать чтоб изначально при старте меню было центрировано?

iNils 30.04.2009 02:05

Не менять координата объекта до первого изменения координат мыши.

А почему у вас в одном месте предок динозавров setProperty, а в другом main_menu._x =?

Sever_a 30.04.2009 11:42

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

Art_133 30.04.2009 14:38

2 iNils
Скажите что лучше использовать вместо setProperty?

iNils 30.04.2009 14:50

Код AS1/AS2:

mouseX = _xmouse;
mouseY = _ymouse;
flag = true;
menuX = main_menu._x;
function onMouseMove () {
        if (flag) {
                if (!(mouseX == _xmouse && mouseY == _ymouse)) {
                        flag = false;
                } else {
                        if (mouseX > 485) {
                                diff = (mouseX - 485) / 15;
                        }
                        if (mouseX < 365) {
                                diff = (365 - mouseX) / 15;
                        }
                        if (mouseX <= 365 && menuX <= 465) {
                                main_menu._x = menuX + diff;
                        }
                        if (mouseX >= 485 && menuX >= 235) {
                                main_menu._x = menuX - diff;
                        }
                        if (main_menu._x >= 465) {
                                main_menu._x = 465;
                        } else if (main_menu._x <= 235) {
                                main_menu._x = 235;
                        }
                        gotoAndPlay (2);
                }
        }
}

Цитата:

Скажите что лучше использовать вместо setProperty?
Код:

setProperty("main_menu", _x, menuX+diff);
Так писали во времена 4-го флеша! (а сейчас уже 10-ый)
и со времен 5-ки пишут так
Код:

main_menu._x = menuX+diff;

Art_133 30.04.2009 14:58

да, я понимаю. А если нужно программно выставить качество ролика. Обычно я делаю так
Код AS1/AS2:

setProperty ('', _quality, 'BEST');

Это считается тоже древним методом? Есть альтернативы?

iNils 30.04.2009 15:07

Забудьте вро setProperty совсем.
Код:

_quality = "BEST";

Art_133 30.04.2009 15:15

спасибо

Sever_a 30.04.2009 16:06

вот теперь обратная проблема, scrolling срабатывает лишь тогда когда мышь двигается, соответственно нельзя увести мышь в сторону при этом чтобы плавно выезжало меню, т.е. приодится что-то типо листать?!
Второй вопрос зачем вообще в начале кода говорить о координате "y"?


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

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