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

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

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

Регистрация: Sep 2005
Сообщений: 50
Question away3d objectContainers

Помогайте, кто чем может )

На сцене есть 2 контейнера (ObjectContainer).

objectContainer1 и objectContainer2

В objectContainer1 есть объект plane.

Задача - перенести объект plane из objectContainer1 в objectContainer2, но так, чтобы положение и поворот plane остались неизменными. т.е., чтобы plane не изменил своего положения. Нужно это для последующей анимации plane в objectContainer2, т.е. чтобы plane плавно переместился из заданной позиции objectContainer1 в заданную позицию objectContainer2

Есть 2 решения:


Решение 1:

1. Получить глобальные координаты (coords1) plane пока он находится в objectContainer1
2. Перенести plane в objectContainer2
3. Получить глобальные координаты (coords2) plane пока он находится в objectContainer2
4. Удалить plane из objectContainer2
5. Анимировать plane из coords1 в coords2
6. Перенести plane в objectContainer2

Это решение реализуемо, но не годится, т.к. нужно, чтобы plane сразу стал объектом в objectContainer2

Решение 2:

1. Перенести plane в objectContainer2, но так, чтобы plane остался в предыдущей позиции (Вот тут вся загвоздка)
2. Анимировать plane в objectContainer2


P.S.

Вывести plane из objectContainer1 так, чтобы plane оставался на месте я могу.

Примерно так:

Код:
var rot = Matrix3D.matrix2euler(plane.sceneTransform);
var pos = plane.scenePosition;

objectContainer1.removeChild(plane);
			
scene.addChild(plane);
			
plane.x = pos.x;
plane.y = pos.y;
plane.z = pos.z;

plane.rotationX = rot.x;
plane.rotationY = rot.y;
plane.rotationZ = rot.z;
При этом plane уйдёт из objectContainer1, но останется на своей позиции

Как прицепить его к objectContainer2, чтобы он оставался в этой же позиции неясно (

В общем нужно по известному глобальному (x,y,z и rotX, rotY, rotZ) для objectContainer2 и глобальному (x,y,z и rotX, rotY, rotZ) для plane получить локальные (x,y,z и rotX, rotY, rotZ) для plane в objectContainer2

P.P.S Спасибо за внимание


Последний раз редактировалось nauroman; 27.08.2007 в 11:18.
Создать новую тему   Часовой пояс GMT +4, время: 18:39.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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