Форум 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=112286)

DJ_Baton 23.05.2008 04:10

проблема со скроллингом колеса
 
Столкнулся с такой проблемой - есть флэш сайт, есть там поле с контентом и скроллингом и сам сайт в браузере тоже скроллируется стандартным скроллингом, так вот стоит потягать скроллинг как колесо тупо привязывается к области скроллирования и стандартный скроллинг браузера перестаёт реагировать на колесо мыши, кто знает как с помощью AS это пофиксить ?

iNils 23.05.2008 04:29

Вызвать javascript, котороый вернут фокус на html страницу

DJ_Baton 23.05.2008 06:27

хм не уловил идею, я в JS не особо шарю но если вы объясните принцип то я объясню программисту...
тут ещё одна идея в голове мелькала не знаю получится или нет - сделать работоспособность скрипта колеса мыши только если курсор мыши находится в поле скроллируемого во флэшине контента, если же нет тогда скрипт не пашет, только вот вернет ли это скроллирование всей страницы не знаю...

iNils 23.05.2008 08:20

События от колеса получает то приложение, которое имеет на себе фокус. По умолчанию, фокус находится на html странице и скролируется она. Когда вы кликнули по флешу, события начинает получать флеш, а не страница. Поэтому надо сместить фокус обратно. Если вы говорите о js программисте, то он должен знать как это делать.

DJ_Baton 23.05.2008 17:21

а как через AS сделать вызов яваскрипта ?

iNils 23.05.2008 17:28

Через класс flash.external.ExternalInterface

DJ_Baton 23.05.2008 20:27

Апдейт:
Цитата:

onEnterFrame = function () {
mask_mc.onDragOut = function() {
flash.external.ExternalInterface.call("myFocus");
};
};
правильно ?
вот JS в хеде:
Цитата:

<script>
myFocus() { window.focus() }
</script>

АПДЕЙТ вот вроде правильный скрипт проверяющий наличие курсора мыши в поле контента, только вызов функции я помоему неправильно написал
Код:

onEnterFrame = function () {
        if ((_root._xmouse>310 && _root._xmouse<900) || (_root._ymouse<427 && _root._ymouse>702)) {
                trace("мы внутри контента");
        } else {
                trace("мы вне контента");
                flash.external.ExternalInterface.call("myFocus");
        }
};


Psycho Tiger 24.05.2008 12:30

Пффф... ты убрал мышку с flash ролика. Что будет возвращать _xmouse и _ymouse?
Напомню, что flash - безобидейшее существо, получить _xmouse и _ymouse он НЕ может, когда мышка находиться вне флэш ролика (исключение баг с dragOut`ом из флэш ролика).
Вывод: тот код, что ты написал выше нужно переделать под js, то есть вызвать его из js`a.

DJ_Baton 24.05.2008 20:20

Цитата:

Сообщение от Psycho Tiger (Сообщение 741162)
Пффф... ты убрал мышку с flash ролика. Что будет возвращать _xmouse и _ymouse?
Напомню, что flash - безобидейшее существо, получить _xmouse и _ymouse он НЕ может, когда мышка находиться вне флэш ролика (исключение баг с dragOut`ом из флэш ролика).
Вывод: тот код, что ты написал выше нужно переделать под js, то есть вызвать его из js`a.

с какого я это флэш ролика убрал ? ))))) С чего это ты вообще взял ? У меня весь сайт на флэше и проверку он делает исключительно на нахождение в поле скроллируемого контента и должен возвращать фокус сайту когда мышка уходит из скроллируемого поля

DJ_Baton 26.05.2008 00:58

Попытаюсь ещё раз внятно описать проблему...
Есть поле с определенными координатами - это область в которой во флэшке скроллируется контент, я описал эту область в скрипте, исходя из trace-а она описана верно и работает верно и к ней не возвращаемся, вопрос у меня только 1 - как правильно запускать JS функцию ?
Вот мой скрипт...
Код:

import flash.external.ExternalInterface;
F_myFocus = function (col) {
        ExternalInterface.call("myFocus", col);
};
onEnterFrame = function () {
        if ((_root._xmouse>310 && _root._xmouse<900) || (_root._ymouse<427 && _root._ymouse>702)) {
                trace("мы внутри контента");
        } else {
                trace("мы вне контента");
                F_myFocus();
        }
};

Что я пишу не так, помогите плиз, разве так сложно указать на ошибку ? :(


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

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