![]() |
горизонтальный скролл и attachMovie
Вложений: 1
Ребята, подскажите, пожалуйста, уделите Ваше внимание! Не знаю как сделать ..
Есть горизонтальный скролл куда приаттачиваются мувики (в любом количестве) .. Скролл осуществляется по движению мыши Как мне сделать, чтобы этот скролл был зацикленный? Чтобы при движении влево первый мувик, выезжая за пределы сцены, переносился бы после последнего. А при движении вправо, наоборот, последний мувик становился бы перед первым и т. д. Вот код: Код:
posX=_root.mc._x; |
Как вариант: смотришь, когда крайний мувик доходит до "критической точки", и переносишь его на другую сторону. Эту "критическую точку" нужно расчитывать самому, в зависимости от количества фоток и её длины.
|
Привет! mayday! Узнаю этот код. Я вижу Вы его перестроили в корне. Хотя непонятно зачем Вы создаете обработчик onEnterFrame для каждого клипа.
Идея мне вообщем понятна. Вот тут мне непонятно: Код:
if (this._x<posMask-this._width) {mcLast вычисляется в строчке: Код:
mcLast = this["photo"+N]._x+this["photo"+N]._width+L;Теперь, если всеже через N, тогда mcLast никак не может быть вычислено для текущего клипа (см. блок onEnterFrame) поскольку последний клип this["photo"+N] еще не приатачен. |
Привет, Alex_beginner! :)
Поменял N на i Пока получилось сделать движение влево с приаттачиванием после последнего мувика.. Вправо пока никак (( Код:
posX=_root.mc._x; |
Вот сравните строчки:
Код:
this._x -= shag;Код:
this._x += -shag; |
Вложений: 1
Цитата:
Со стороны одно и то же .. В первом случае shag - положительное число, во втором - отрицательное Если сделать так: Код:
this._x -= shag;Код:
this._x += shag;вот для наглядности исходник |
А mouseMove есть выше! Я его незаметил. Тогда может сдеалем несколько подругому, если это приемлемо для Вас.
1. Вынесите строчку Код:
center = Stage.width/2;2. Давайте попробуем отказаться от onEnterFrame каждого клипа и сделать все движения в единственном onMouseMove, используя ссылки this["photo"+i] 3. Подписать mouseListener после завершения кода в цикле. Что это дасть?!! 1. Код в цикле сократиться 2. Будет только один обработчик 3. На момент окончания работы цикла будет известно значение mcLast Если все это Вас заинтересовало, попробуте реализовать. Я думаю Вы ничего непотеряете, только выиграете. |
оптимизацией я уж потом займусь ..
сейчас основная задача - решить проблему скроллинга вправо вот только как это сделать .. |
Надо рассматривать проблему в купе.
Как я уже говорил, в коде где вы аттачите мувы Вы тут же создаете обработчики для них onEnterFrame. Но в этих обработчиках используется перменная (mcList) которая не может быть вычислена, если не приаттачины все клипы. Получается змея закусившая свой хвост. Дак не лучше ли отказаться от onEnterFrame в пользу mouseMove. И начать обработку события onMouseMove после того как созданы все клипы. Попробуйте так. Если же Вас это неустраивает, ну давайте будем "мучиться" с тем что есть. |
я actionscript еще плохо знаю и поэтому для меня это пока сложновато будет сделать..
Alex, поможешь доделать? Я в долгу не останусь. а сдавать завтра.. |
| Часовой пояс GMT +4, время: 00:59. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.