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

Вернуться   Форум Flasher.ru > Flash > API приложений и сред

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

Регистрация: May 2009
Сообщений: 3
По умолчанию Изменение свойств материалов в PaperVision3d

Всем привет!

Нужна помощь. Создаю галерею на ppvd. При помощи BulkLoader-a загружаю фото; циклом создаю новые битмапы, оборачиваю их в мувиклипы; эти мувиклипы в том же цикле использую для создания MovieMaterial для плоскостей (plane), которые и размещаю на плоскостях цилиндра в некоторых координатах относительно его vertices. Все эти planes добавляю в DisplayObject3D и помещаю его на сцену.

Код ниже.
Код AS3:
var numOfVertieces:Number = cylinder.geometry.vertices.length;
 
for (var j:int = 1; j < numOfVertieces; j++) 
	{
		var bm:Bitmap = bl.getBitmap(j + ".jpg");
 
                mc_mat = new MovieClip();
		mc_mat.addChild(bm);
 
		plane_mat =new MovieMaterial(mc_mat);
                plane_mat.interactive = true;
		plane_mat.smooth = true;
		plane_mat.doubleSided = true;
 
		plane = new Plane(plane_mat,bm.width,bm.height,1,1);
 
		plane.x
                ...
                carusel_container.addChild(plane);
         }
Допустим передо мной стоит задача: на событие поворот колеса мыши (т.е. я не могу обратиться к объекту как e.target) повернуть всю карусель и, чтобы создать иллюзию быстрого вращения, применить фильтр. Вопрос: к чему именно применить фильтр? К plane, к его мувиматериалу, или к мувиклип материала. Получилось реализовать через применения фильтра на весь viewport, но мне эта реализация не нравится.

Код AS3:
stage.addEventListener(MouseEvent.MOUSE_WHEEL,onMW);
 
private function onMW(e:MouseEvent):void{
			var lr:Number = carusel_container.localRotationY;
			TweenLite.to(carusel_container,1, {localRotationY:lr+15});
 
			var timeline:TimelineLite = new TimelineLite();
			timeline.append( new TweenMax(viewport, .5, {blurFilter:{blurY:200}}) );
			timeline.append( new TweenMax(viewport, .5, {blurFilter:{blurY:0}}) );
И еще. Как правильно обращаться к plane-ам из других функций, если я в цикле еще добавлю код:
Код AS3:
plane_mat.id = j;
или
Код AS3:
plane_mat.name = "plane_mat_name" + j;
Добавлено через 7 часов 12 минут
Возможно, кому-нибудь пригодится. Нашла еще один способ реализации.

В основном цикле создания карусели для каждого plane прописываем
Код AS3:
plane.useOwnContainer = true;
и затем помещаем все элементы карусели в объявленный в глобальной области массив:
Код AS3:
list.push(carusel_container.addChild(plane));
.

Теперь если надо из какой-нибудь ф-ции обратиться к элементам массива, имеем:
Код AS3:
for (var i:int = 0; i < 10; i++) 
		{
			var obj:DisplayObject3D = list[i] as DisplayObject3D;
			obj.filters = [new BlurFilter(1, 20, 2)];
		}
//здесь применяется фильтр ко всем элементам массива с индексом, меньшим 10.

Может кто еще что подскажет?

Создать новую тему Ответ Часовой пояс GMT +4, время: 20:01.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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