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

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

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

Регистрация: Nov 2010
Сообщений: 6
Cool "Умное" перемещение объектов в 3D

Добрый вечер, уважаемые коллеги.
С AS работаю не так давно, и имею не так много опыта как хотелось бы. Но все же и не совсем новичок. Прошу помочь советом с решением одной задачи, связанной с передвижением объектов в 3D.

На счене находятся объект mc_cont. В нем, в свою очередь, находятся 10 других объектов. Пусть они имеют имена mc1, mc2...mc10 и имеют произвольно расположение как по осям x,y так и по оси z.

Алгоритм действий следующий.
1) При нажатие на кнопку объект mc1 подъезжает и оказывается по центру экрана, а его положение по оси z становится равным 0.
2) При повторном нажатие на кнопку объект mc2 подъезжает и оказывается по центру экрана, а его положение по оси z становится равным 0, и так далее.

Я понимаю как сделать обработку кнопки, понимаю что для перемещения следует использовать Tween, понимаю что на самом деле следует перемещать mc_cont а не mc# и использовать GlobalToLocal (LocalToGlobal?). Но как организовать все в целом мне не ясно.

Буду благодарен за любую помощь.

Старый 11.11.2010, 19:04
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 2  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
GlobalToLocal или LocalToGlobal - думаю не нужны. Попробуйте сделать что ни будь, и если будут проблемы, то вместе с кодом сюда, а то ведь трудно посоветовать. Вот например код, это документКласс:
Код AS3:
package 
{
	import fl.transitions.easing.Strong;
	import fl.transitions.Tween;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.KeyboardEvent;
 
	/**
	 * ...
	 * @author Samana
	 */
	public class Main extends Sprite 
	{
		//этот класс рисует простой круг
		private var c:NewClass;
 
 
		public function Main() 
		{
			//создаем круг и распологаем его с лучайных координатах
			//по всем трём осям
			c = new NewClass()
			c.y = Math.random() * 300;
			c.x = Math.random() * 600;
			c.z = Math.random() * 3000;
			addChild(c)
 
			//при нажатии любой клавиши....
			stage.addEventListener(KeyboardEvent.KEY_DOWN, key_down);
		}
 
		private function key_down(e:KeyboardEvent):void 
		{
			//круг перемещается из текущего своего положения в центр экрана
			new Tween(c, "x", Strong.easeOut, c.x, stage.stageWidth/2, 2, true);
			new Tween(c, "y", Strong.easeOut, c.y, stage.stageHeight/2, 2, true);
			new Tween(c, "z", Strong.easeOut, c.z, 0, 2, true);
		}
 
	}
 
}

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

блогер
Регистрация: Sep 2008
Адрес: Менск
Сообщений: 586
Записей в блоге: 1
Отправить сообщение для incvizitor с помощью Skype™
у Вашего контейнера есть свойство z в переменную "startZ". Это свойство мы сохраняем вначале (от него мы и будем отталкиваться.

Создаём также локальную переменную "i", которую будем инкриментировать при каждой прокрутке.

На каждый клик мыши изменяете значение i, после чего твиним z контейнера в в кординату полученную таким образом:

Код AS3:
startZ + cont.getChildAt(i).z;
i = (i + 1) % cont.numChildren;
Всё, счастье.

Добавлено через 2 минуты
2 samana,
Цитата:
понимаю что на самом деле следует перемещать mc_cont а не mc#
На сколько я понял топикстартеру нужно что бы прокручивались все объекты.
__________________
ranga

Старый 11.11.2010, 19:24
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 4  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
incvizitor
Цитата:
На сколько я понял топикстартеру нужно что бы прокручивались все объекты.
А, возможно и так, я поторопился.

Старый 11.11.2010, 19:37
kambey80 вне форума Посмотреть профиль Отправить личное сообщение для kambey80 Найти все сообщения от kambey80
  № 5  
Ответить с цитированием
kambey80

Регистрация: Nov 2010
Сообщений: 6
Цитата:
На сколько я понял топикстартеру нужно что бы прокручивались все объекты.
Да. В том то и дело что необходимо двигать все объекты, но опираясь на то, что они последовательно должны оказываться по центру экрана с z=0.

Samana большое спасибо за подсказку. В целом думал что следует двигаться в этом направление, но не ясно как организовать перемещение всей группы (то-есть mc_cont) что бы mc# оказывался в центре экрана, а остальные объекты так же смещались.

Старый 11.11.2010, 19:48
yorlin вне форума Посмотреть профиль Отправить личное сообщение для yorlin Найти все сообщения от yorlin
  № 6  
Ответить с цитированием
yorlin
 
Аватар для yorlin

Регистрация: Nov 2008
Сообщений: 109
Вам что, нужна реализация обычной карусели?

UPD:Понял, не карусель, так как рандомное расположение.


Последний раз редактировалось yorlin; 11.11.2010 в 19:52.
Старый 11.11.2010, 20:00
kambey80 вне форума Посмотреть профиль Отправить личное сообщение для kambey80 Найти все сообщения от kambey80
  № 7  
Ответить с цитированием
kambey80

Регистрация: Nov 2010
Сообщений: 6
Нет, это не карусель.
И я описал расположение объектов как рандомное для упрощения. На самом деле объекты будут расположены четко, но на первый взгляд в довольно хаотичном порядке.

Старый 12.11.2010, 02:16
samana вне форума Посмотреть профиль Отправить личное сообщение для samana Найти все сообщения от samana
  № 8  
Ответить с цитированием
samana
 
Аватар для samana

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Посмотрите исходник, если ещё не сделали, может поможет.... Для перемещения по кнопкам, кликайте по сцене.
Вложения
Тип файла: rar Menu.rar (31.2 Кб, 100 просмотров)
Тип файла: swf Menu.swf (5.0 Кб, 389 просмотров)

Старый 12.11.2010, 14:19
deamoK вне форума Посмотреть профиль Отправить личное сообщение для deamoK Найти все сообщения от deamoK
  № 9  
Ответить с цитированием
deamoK
[+1 16.12.11]
 
Аватар для deamoK

Регистрация: Sep 2010
Сообщений: 57
прикольно, только еще z-sorting бы, а то абсурд получается - дальний объект рисуется впереди всех

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

блогер
Регистрация: Mar 2008
Адрес: Днепропетровск
Сообщений: 1,783
Записей в блоге: 3
Цитата:
Сообщение от deamoK Посмотреть сообщение
прикольно, только еще z-sorting бы, а то абсурд получается - дальний объект рисуется впереди всех
А это уже домашнее задание. )

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

Теги
3d , AS 3 , tween
Опции темы
Опции просмотра

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

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


 


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


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