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

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

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

Регистрация: Apr 2011
Сообщений: 87
По умолчанию Вопрос по вращению объектов

Вопрос следующий:
Есть круговая шкала на ней 12 цифр. Все это необходимо вращать, сохраняя читабельность цифр
Поясняю: деления шкалы вращаются почасовой и против часовой стрелки при этом цифры также вращаются и всегда должны сохранять вертикальное (читабельное) положение относительно оси Y
Вот графический пример (написан на делфи 7)
До
http://imglink.ru/show-image.php?id=...ca59dbc8cb780e
После
http://imglink.ru/show-image.php?id=...246a71a7ad8524
А вот как подобное реализовать в Флеше CS5 не знаю.

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

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
цифры вам не вращать нужно а перемещать (синус, косинус в помощь)

или можно вращать весь контейнер (с делениями и цифрами) а потом отдельно каждую цифру назад
__________________
low +

Старый 28.12.2011, 13:18
optemus вне форума Посмотреть профиль Отправить личное сообщение для optemus Найти все сообщения от optemus
  № 3  
Ответить с цитированием
optemus

Регистрация: Apr 2011
Сообщений: 87
вот только как создать такой кантейнер я не знаю.

Старый 28.12.2011, 13:27
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 4  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Да, собственно, он и нафиг не нужен. Можно легко обойтись без вышеуказанного контейнера.
Вот, по-быстренькому набросал пример класса, который крутит циферблат без вращения цифр.
Код AS3:
package  {
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.text.TextField;
	/**
	 * ...
	 * @author Серов Константин
	 */
	public class DigitsRotation extends Sprite {
 
		private var _angleStep:	int 			= 360 / 12;
		private var _faceRadius:	Number			= 100;
		private var _allDigits:	Vector.<TextField>	= new Vector.<TextField>();
		private var _initialAngle:	int			= 0;
		private var _increment:	Number 			= 1;
		private var _cX:		Number;
		private var _cY:		Number;
		private var _degRad:	Number		           = Math.PI / 180;
 
		public function DigitsRotation() {
			_cX			= stage.stageWidth  / 2;
			_cY			= stage.stageHeight / 2;
			positionDigits();
			addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
 
		private function onEnterFrame(e:Event):void {
			_initialAngle += _increment;
			for (var i:int = 0; i < _allDigits.length; i++) {
				_allDigits[i].x		= _cX + Math.cos((_initialAngle + (i * _angleStep)) * _degRad) * _faceRadius;
				_allDigits[i].y		= _cY + Math.sin((_initialAngle + (i * _angleStep)) * _degRad) * _faceRadius;
			}
		}
 
		private function positionDigits():void {
			for (var i:int = 1; i < 13; i++) {
				var tf:TextField = new TextField();
				tf.text				= String(i);
				tf.x				= _cX + Math.cos((_initialAngle + (i * _angleStep)) * _degRad) * _faceRadius;
				tf.y				= _cY + Math.sin((_initialAngle + (i * _angleStep)) * _degRad) * _faceRadius;
				_allDigits.push(tf);
				addChild(tf);
			}
		}
	}
}
Надеюсь идея ясна

Старый 28.12.2011, 15:51
optemus вне форума Посмотреть профиль Отправить личное сообщение для optemus Найти все сообщения от optemus
  № 5  
Ответить с цитированием
optemus

Регистрация: Apr 2011
Сообщений: 87
увы ошибка
Монтажный кадр 1, слой "Слой 1", кадр 1, строка 2 1037: Пакеты не могут быть вложенными.
видемо не умею пользоваться подобным кодом

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

Регистрация: Aug 2008
Адрес: Рязань
Сообщений: 723
это код класса

чтобы использовать его в кадре попробуйте разобраться как происходит перемещение, и тогда написать в кадре аналогичный код не будет проблем
__________________
low +

Старый 28.12.2011, 15:55
optemus вне форума Посмотреть профиль Отправить личное сообщение для optemus Найти все сообщения от optemus
  № 7  
Ответить с цитированием
optemus

Регистрация: Apr 2011
Сообщений: 87
данный цифирблать лишь 1 из 7 и 5 уже написаны в моем случаее необходимо большую часть рисовать вручную и объеденять пакеты с заранее отрисованным и анимированным содержимом я увы не умею

Добавлено через 32 минуты
увы моих познаний в флаш явно не достаточно чтобы разобраться как работает код выше


Последний раз редактировалось optemus; 28.12.2011 в 16:33.
Старый 28.12.2011, 17:01
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 8  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Увы, тогда тут мы вряд ли чем поможем

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

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
Так подучите, код свыше очень простой и почти красивый, если бы не адские табуляции :о)))
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 28.12.2011, 17:07
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 10  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
если бы не адские табуляции :о)))
Ога, тут уродливо почему-то добавляется. В оригинале красиво и ровно

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

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

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


 


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


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