![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Всем доброго времени суток. Столкнулся с такой проблемой. Есть XML файл ноды которого создают циклом экземпляры мувиклипа и экземпляры кнопки для мувиклипа, код
for (var i:Number = 0; i<vsego; i++) { //создает экземпляры кнопки var delite_btn:MovieClip = Scrol_mc.vid_mc.attachMovie("delite_btn", "Scrol_mc" +i, i); delite_btn._x = 265; delite_btn._y = i*65+5; //создает экземпляры мувиклипа var Mediablock:MovieClip = Scrol_mc.vid_mc.attachMovie("Mediablock", "Scrol_mc"+i, i); Mediablock._y = i*65; Mediablock._alpha = 70; for (var i:Number = 0; i<vsego; i++) { //создает экземпляры кнопки var delite_btn:MovieClip = Scrol_mc.attachMovie("delite_btn", "Scrol_mc" +i, i); delite_btn._x = 265; delite_btn._y = i*65+5; //создает экземпляры мувиклипа var Mediablock:MovieClip = Scrol_mc.vid_mc.attachMovie("Mediablock", "Scrol_mc"+i, i); Mediablock._y = i*65; Mediablock._alpha = 70; ![]() Последний раз редактировалось udaaff; 19.01.2011 в 14:49. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Ну так вы их на одну и ту же глубину добавляете.
|
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
А как поставить другую? Думаете в этом проблема?
Добавлено через 20 минут Разобрался с глубиной, но она ничего не решает. Если выставить скажем число 3 для кнопки, то просто пропадает третий по счету экземпляр мувиклипа. Я вот думаю, если поставить кнопку непосредственно в мувиклип, не циклом, а сделать частью мувиклипа. Разумеется в таком случае она просто так не заработает, курсор над кнопкой будет посылать команду как еслибы он был над мувиклипом, но могет это как нить можно обойти? |
|
|||||
|
Модрон-ветеринар
|
Можно. Используйте непрерывную проверку на hitTest. Только кнопка должна быть не символом типа Button, а символом типа MovieClip.
А по проблеме. Вообще, я бы сделал либо две пачки приаттачиваемых мувиков в разных контейнерах, чтобы не было конфликотв с глубинами, либо во втором наборе просто прибавил к глубине некую константу, которая зависела бы от количества мувиков в первой пачке (то есть начал бы отсчет с vsego). То есть нумерация глубин продолжалась бы с определенного значения, и ничто бы не исчезало.
__________________
Идите первым! Последний раз редактировалось mooncar; 19.01.2011 в 16:46. |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
mooncar, две пачки контейнеров не лучший выход, это скролить два контейнера нужно. Хотя... можно привязать _y нескролируемого к _y скролируемого. Жесть конечно, но выход. Что касается кностант. Оно не только исчезает, но и кнопка все равно на месте исчезнувшего контейнера не появляется. Вобщем вопрос пока открыт.
Немножко офтопика. Делаю скрол вместе с блюром. То есть в направлении скролинга контейнер должен размывается. Включить фильтр не проблема, по событию колеса он включается, а вот как его выключить? Последний раз редактировалось Mulin; 19.01.2011 в 17:03. |
|
|||||
|
Модрон-ветеринар
|
Пример. Рисуем mc, добавляем в кадр код и нажимаем после компиляции на mc.
import flash.filters.BlurFilter; var filterArray:Array = new Array(); var filter:BlurFilter = new BlurFilter(30, 30, 2); filterArray[0] = filter; mc.filters = filterArray; mc.onRelease = function() { var filter:BlurFilter = this.filters[0]; filter.blurX = 0; filter.blurY = 0; filterArray[0] = filter; mc.filters = filterArray; }; То, что тут на onRelease, прикручиваем к нужному событию колесика. PS. Новый вопрос - новая тема.
__________________
Идите первым! Последний раз редактировалось mooncar; 19.01.2011 в 17:22. |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
mooncar, в том то и дело, что срабатывает он единожды, произошло событие onMouseWheel - фильтр применился, а как его убрать после окончания действия onMouseWheel?
Добавлено через 2 минуты Я так применяю //импортирую фильтра blurstart = new flash.filters.BlurFilter(0, 10, 2); blurend = new flash.filters.BlurFilter(0, 10, 2); |
|
|||||
|
Модрон-ветеринар
|
У обработчика onMouseWheel есть аргумент, принимающий отрицательные или положительные значения в з-ти от направления вращения колесика:
import flash.filters.BlurFilter; var filterArray:Array = new Array(); var filter:BlurFilter = new BlurFilter(30, 30, 2); filterArray[0] = filter; mc.filters = filterArray; var mouseListener:Object = new Object(); mouseListener.onMouseWheel = function(delta) { if (delta < 0) { var filter:BlurFilter = this.filters[0]; filter.blurX = 0; filter.blurY = 0; filterArray[0] = filter; mc.filters = filterArray; } }; Mouse.addListener(mouseListener); Спустя сколько-то миллисек. блюр должен плавно убраться? Просто выключиться? Не очень понятно. Добавлено через 23 минуты Так применяйте так же на нужное событие, только нули задайте, и фильтр обнулится.
__________________
Идите первым! Последний раз редактировалось mooncar; 19.01.2011 в 18:16. |
|
|||||
|
Регистрация: Aug 2010
Сообщений: 107
|
Я плохо иногда обьясняю ). Вобщем суть такова. При вращении колесика, в сам момент перемещения контейнера, блюр включается, как только колесико перестало вращаться, контейнер не двишгаеться, фильтр не применяется. Вышеозначенным способом очень легко включить фильтр, а вто как его выключить в тот момент, когда колесо мыши не вращаеться?
|
|
|||||
|
Модрон-ветеринар
|
Если мувик vidthumbs_mc, то вот рабочий пример:
import flash.filters.BlurFilter; var filterArray:Array = new Array(); var filter:BlurFilter = new BlurFilter(0, 0, 2); var canSetBlur:Boolean = true ; var to:Number ; var mListener:Object = new Object(); mListener.onMouseWheel = mouseWheel; Mouse.addListener(mListener); function mouseWheel(delt:Number) { clearTimeout(to); //Если скроллинг продолжается, то установка блюра в 0 отменяется if (canSetBlur) //триггер предотвращает множественные повторные установки блюра в 10 { filter.blurX = 0; filter.blurY = 10; filterArray[0] = filter; vidthumbs_mc.filters = filterArray; canSetBlur = false ; } //Вводим отсроченную установку блюра в 0 после установки в 10 to = setTimeout(resetState, 200); //какие-то движения mc vidthumbs_mc._y += delt; } function resetState () { canSetBlur = true ; filter.blurX = 0; filter.blurY = 0; filterArray[0] = filter; vidthumbs_mc.filters = filterArray; }
__________________
Идите первым! Последний раз редактировалось mooncar; 19.01.2011 в 19:47. |
![]() |
![]() |
Часовой пояс GMT +4, время: 16:40. |
|
|
« Предыдущая тема | Следующая тема » |
|
|