Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 19.01.2011, 14:12
Mulin вне форума Посмотреть профиль Отправить личное сообщение для Mulin Найти все сообщения от Mulin
  № 1  
Ответить с цитированием
Mulin
 
Аватар для Mulin

Регистрация: Aug 2010
Сообщений: 107
Question Проблема с добавлением кнопки в мувиклип

Всем доброго времени суток. Столкнулся с такой проблемой. Есть XML файл ноды которого создают циклом экземпляры мувиклипа и экземпляры кнопки для мувиклипа, код
Код AS1/AS2:
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;
Scrol_mc.vid_mc это контейнер для скролинга экземпляров. Проблема в том, что я немогу добавить в контейнер одномременно и кнопку и мувиклип. То есть можно либо одно либо другое, но вместе не работают., не запускается цикл впринципе и поле пустое. Если код изменить таким образом
Код AS1/AS2:
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;
То цикл создается, элементы создаются, но разумеется delite_btn не скролиться, скролиться только Mediablock. Что делать как быть?


Последний раз редактировалось udaaff; 19.01.2011 в 14:49.
Старый 19.01.2011, 14:51
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Ну так вы их на одну и ту же глубину добавляете.

Старый 19.01.2011, 14:57
Mulin вне форума Посмотреть профиль Отправить личное сообщение для Mulin Найти все сообщения от Mulin
  № 3  
Ответить с цитированием
Mulin
 
Аватар для Mulin

Регистрация: Aug 2010
Сообщений: 107
А как поставить другую? Думаете в этом проблема?

Добавлено через 20 минут
Разобрался с глубиной, но она ничего не решает. Если выставить скажем число 3 для кнопки, то просто пропадает третий по счету экземпляр мувиклипа. Я вот думаю, если поставить кнопку непосредственно в мувиклип, не циклом, а сделать частью мувиклипа. Разумеется в таком случае она просто так не заработает, курсор над кнопкой будет посылать команду как еслибы он был над мувиклипом, но могет это как нить можно обойти?

Старый 19.01.2011, 16:39
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Можно. Используйте непрерывную проверку на hitTest. Только кнопка должна быть не символом типа Button, а символом типа MovieClip.

А по проблеме. Вообще, я бы сделал либо две пачки приаттачиваемых мувиков в разных контейнерах, чтобы не было конфликотв с глубинами, либо во втором наборе просто прибавил к глубине некую константу, которая зависела бы от количества мувиков в первой пачке (то есть начал бы отсчет с vsego). То есть нумерация глубин продолжалась бы с определенного значения, и ничто бы не исчезало.
__________________
Идите первым!


Последний раз редактировалось mooncar; 19.01.2011 в 16:46.
Старый 19.01.2011, 17:01
Mulin вне форума Посмотреть профиль Отправить личное сообщение для Mulin Найти все сообщения от Mulin
  № 5  
Ответить с цитированием
Mulin
 
Аватар для Mulin

Регистрация: Aug 2010
Сообщений: 107
mooncar, две пачки контейнеров не лучший выход, это скролить два контейнера нужно. Хотя... можно привязать _y нескролируемого к _y скролируемого. Жесть конечно, но выход. Что касается кностант. Оно не только исчезает, но и кнопка все равно на месте исчезнувшего контейнера не появляется. Вобщем вопрос пока открыт.
Немножко офтопика. Делаю скрол вместе с блюром. То есть в направлении скролинга контейнер должен размывается. Включить фильтр не проблема, по событию колеса он включается, а вот как его выключить?


Последний раз редактировалось Mulin; 19.01.2011 в 17:03.
Старый 19.01.2011, 17:09
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Пример. Рисуем mc, добавляем в кадр код и нажимаем после компиляции на mc.
Код AS1/AS2:
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.
Старый 19.01.2011, 17:45
Mulin вне форума Посмотреть профиль Отправить личное сообщение для Mulin Найти все сообщения от Mulin
  № 7  
Ответить с цитированием
Mulin
 
Аватар для Mulin

Регистрация: Aug 2010
Сообщений: 107
mooncar, в том то и дело, что срабатывает он единожды, произошло событие onMouseWheel - фильтр применился, а как его убрать после окончания действия onMouseWheel?

Добавлено через 2 минуты
Я так применяю
Код AS3:
//импортирую фильтра
blurstart = new flash.filters.BlurFilter(0, 10, 2);
blurend = new flash.filters.BlurFilter(0, 10, 2);
и применяю переменные
Код AS3:
//переменные
vidthumbs_mc.filters = [blurstart];
vidthumbs_mc.filters = [blurend];

Старый 19.01.2011, 17:52
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 8  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
У обработчика onMouseWheel есть аргумент, принимающий отрицательные или положительные значения в з-ти от направления вращения колесика:
Код AS1/AS2:
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);
Или вы о каком событии говорите? "после окончания действия onMouseWheel" - это что конкретно-то?
Спустя сколько-то миллисек. блюр должен плавно убраться? Просто выключиться? Не очень понятно.

Добавлено через 23 минуты
Цитата:
Сообщение от Mulin Посмотреть сообщение
Я так применяю
Так применяйте так же на нужное событие, только нули задайте, и фильтр обнулится.
Код AS1/AS2:
blurend = new flash.filters.BlurFilter(0, 0, 0);
__________________
Идите первым!


Последний раз редактировалось mooncar; 19.01.2011 в 18:16.
Старый 19.01.2011, 18:24
Mulin вне форума Посмотреть профиль Отправить личное сообщение для Mulin Найти все сообщения от Mulin
  № 9  
Ответить с цитированием
Mulin
 
Аватар для Mulin

Регистрация: Aug 2010
Сообщений: 107
Я плохо иногда обьясняю ). Вобщем суть такова. При вращении колесика, в сам момент перемещения контейнера, блюр включается, как только колесико перестало вращаться, контейнер не двишгаеться, фильтр не применяется. Вышеозначенным способом очень легко включить фильтр, а вто как его выключить в тот момент, когда колесо мыши не вращаеться?

Старый 19.01.2011, 19:18
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 10  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Если мувик vidthumbs_mc, то вот рабочий пример:
Код AS1/AS2:
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;		
}
Я бы еще ввел плавное увеличение-уменьшение блюра при начале и остановке движения... Но это факультативно.
Вложения
Тип файла: rar Движение - с блюром, остановка - без.rar (5.1 Кб, 35 просмотров)
__________________
Идите первым!


Последний раз редактировалось mooncar; 19.01.2011 в 19:47.
Создать новую тему Ответ Часовой пояс GMT +4, время: 17:37.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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