![]() |
Самая простая в мире прокрутка... И нет нигде :-(
Извините, что всё же спрашиваю "сотый раз". Но не нашёл ничего похожего - час лазил в поиске - аж голова опухла.
В общем, приспичило мне сделать прокрутку картинок. Всего их шесть, они распологаются горизонтально вряд. Видны тока две (маска). Справа и слева есть кнопочки. При наведении на правую кнопку, картинки должны двигаться влево - до шестой. При наведении на левую - они движутся вправо. Если убрать мышку, то всё просто останавливается - типа "пауза". Ни исходника, ни кода примерно решающих эту задачу, найти не удалось :-( Есть у меня один код, но там в исходнике заморочки, так как мувик с картинками, который прокручивается и который лежит на главной сцене, имеет метку "in". Когда я пытаюсь сделать в новом файле такую же метку мувика, мне выскакивает окошко, что, типа, "in" зарезервировано системой. Код:
on (rollOver) { |
при наведении на любую из кнопок запускаешь onEnterFrame и двигаешь мувик где лежат картинку в нужную сторону... уводишь с кнопки - delete(onEnterFrame), чтобы остановить
|
То есть вместо "on (rollOver)" надо "onEnterFrame" писать? Или это функция запускается для "on (RollOver)"?
Может, поделитесь кодом? Чтобы хотя бы более менее синтаксис видеть... |
да эта функция запускается при on(rollOver)... она выполняет указанные действия при каждой смене кадра (т.е. со скоростью FPS)... а при on(rollOut) эту функцию удаляешь, чтобы остановить движение...
можешь глянуть http://www.kirupa.com/developer/mx2004/thumbnails.htm на XML внимания не обращай, но прокрутка реализована |
Пример с исходником
P.S. Опоздал... |
Спасибо, попробую...
Но в написании скриптов я дурак-дураком :-( Ладно, буду пытаться написать путём проб и ошибок. |
CGandA, ничего не опоздал. Даже очень кстати твой исходник! Спасибо! :drinks:
|
Глянул я исходник... Нашёл даже место, где "onEnterFrame" и дельта... Но блин, его оттудова ещё надо выковыривать, избавляться от всяких "createEmptyMovieClip" и прочее... Много гемора для моего уровня (точнее его плинтуса).
А как-то попроще это нельзя реализовать? Я привёл в начале код - там в принципе всё понятно и работает. Единственное, что там "root", где метка стоит непонятная у мувика с картинками... Может, всё же "root" сменить на имя мувика или ещё на чёнть? |
Код:
левая кнопка.onRollOver = function(){ |
Спасибо, Wolsh! Это уже больше похоже на спасательный круг :yahoo:
|
Всё работает! Именно то, что было надо!
Единственное, вдогонку хочу задать ещё ОДИН вопрос относительно кода (by Wolch): Как задать предел прокрутки? То есть докрутить "мувик_с_картинками" до определённого места и чтобы дальше он не мог двигаться. Естессна в обоих направлениях (в данном случае, вправо и влево). |
Что, никто не в курсе?
Или может я не так объяснил... В общем, видимая часть в галерее - это маска, расчитанная на две картинки. Всего в галерее - шесть картинок. Надо сделать так, чтобы когда мувик с картинками докрутился до такой степени, что в маске видны последние две картинки - чтобы он останавливался, независимо от того, наведён ли курсор на кнопку, или нет. То же самое и с началом галереи. В маске видны первые две картинки. Я так думаю, какоие-то пределы нужно задать справа и слева, но как это сделать... |
Что же тут сложного? Пора уже головой слегка своей тоже задумываться.
Код:
левая кнопка.onRollOver = function(){ |
Спасибо!
|
Вложений: 1
Всё сделал вроде как надо. Но работает всё же не совсем так....
Прицепляю исходник. Единственное, что там не устраивает - это остановка не в том месте (слишком уж далеко влево уходит галерея) при наведении на левую кнопку. И потом когда в обратную сторону идёт, не доходит до конца, при наведении на правую. В исходнике видно в общем, что к чему... |
Половину проблемы решил самостоятельно. Чтобы галерея не уходила слишком далеко влево при наведении на левую кнопку, прибавил цифровое значение к "_width":
Код:
if (gal._x > mask._x+mask._width-gal._width+95) |
Вложений: 1
Ура! Проблема решена.
Даю код и исходник, на случай если кому понадобится. Код:
b1.onRollOver = function(){ |
Ну конечно, если у тебя в маске прямоугольник стоит не ноль в ноль, а в галерее картинки тоже нифига не с нуля начинаются, то мои формулы в чистом виде бессильны :)
На будущее приучи себя все ставить в ноль, тогда маска._х всегда будет означать то место, откуда маска начинается ;) Удачи |
и не делать много сообщений подряд... есть кнопка "изменить"..
|
| Часовой пояс GMT +4, время: 06:44. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.