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

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

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

Регистрация: Nov 2010
Адрес: Ярославль
Сообщений: 249
Thumbs down Фиксация 3D трансформации ребёнка, независимо от перемещения родителя

Здравствуйте. Уже долго мучаюсь с одной проблемой - всё никак не могу прийти к решению. У меня есть изображения (на котором изображено пианино) и есть MovieClip с пианинной клавиатурой, который я специально подогнал под размеры, чтобы казалось, что этот клип - часть самого пианино на изображении. Потом я засунул изображение и клип с клавиатурой в один контейнер.

Проблема в том, что когда я перемещаю контейнер, клавиатура уже не выглядит так, как будто она принадлежит изображению (она как бы отлипляется от того места и перемещается "независимо" внутри контейнера). Пробовал эксперементировать с Matrix3D клипа с клавиатурой, но не особо силён в математике, и ничего толкового не вышло. Подскажите, как можно "зафиксировать" 3D клип внутри контейнера (как бы прикрепить его к определённому месту, чтоб он визуально сохранял своё положение, вращение и масштабирование)?

Вот как это выглядит: http://media.otkritka.com/flash_user...f0c82f2be1.swf

Старый 15.10.2012, 08:18
Argas вне форума Посмотреть профиль Отправить личное сообщение для Argas Найти все сообщения от Argas
  № 2  
Ответить с цитированием
Argas

Регистрация: Oct 2012
Сообщений: 35
вся беда из за того что ты работаешь в 3х измерениях, и картинка с клавиатурой у тебя на разных расстояниях от точки обзора , т.е у ниx разный focalLength. Зная значение focalLength, и значение положения клавиш и пианино, можешь перемещать и вращать клавиши в соответствии с перемещением пианино (математически высчитывать угол и смещение что бы казалось будто они одно целое). В адобовском as3_Programming хелпе в разделе "работа в 3х измерениях" есть немного об этом. Еще: в данном примере не вижу нужды в 3Д клавишах, сделай в 2Д и не парься )
P.S: не исключено что есть способы проще.

Старый 15.10.2012, 11:22
silin вне форума Посмотреть профиль Посетить домашнюю страницу silin Найти все сообщения от silin
  № 3  
Ответить с цитированием
silin
 
Аватар для silin

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
попробуй просто задать этому контейнеру свой perspectiveProjection, типа
Код AS3:
var pp:PerspectiveProjection = new PerspectiveProjection();
pp.projectionCenter = new Point(stage.stageWidth / 2, stage.stageHeight / 2);
piano_mc.transform.perspectiveProjection = pp;
Добавлено через 5 минут
ага, этого мало скорее всего, в обработчике драга придется его обновлять тоже
т.е. изначально, например
Код AS3:
var pp:PerspectiveProjection = new PerspectiveProjection();
pp.projectionCenter = new Point(piano_mc.x + piano_mc.width / 2, piano_mc.y + piano_mc.height / 2);
piano_mc.transform.perspectiveProjection = pp;
и при перемещении тоже
Код AS3:
piano_mc.x += mouseX - prevX;
piano_mc.y += mouseY - prevY;
var pp:PerspectiveProjection = new PerspectiveProjection();
pp.projectionCenter = new Point(piano_mc.x + piano_mc.width / 2, piano_mc.y + piano_mc.height / 2);
piano_mc.transform.perspectiveProjection = pp;
prevX = mouseX;
prevY = mouseY;

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

Теги
3d , фиксация
Опции темы
Опции просмотра

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

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


 


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


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