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

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

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

Регистрация: Dec 2010
Сообщений: 177
По умолчанию При повороте клипа на 90 высота меняется на ширину

Код AS3:
clip.rotation = 90;
Почему после вышеуказанной строчки кода, если у клипа (прямоугольника) увеличивать значение height (clip.height = 500) , то визуально это будет смотреться, как увеличение ширины (по горизонтали) объекта.
Но мне надо чтобы при любом повороте, увеличивая height, визуально объект увеличивался по вертикали. Т.к. как это и сделано в FlashIDE, когда в свойствах регулируется высота.

Старый 09.12.2011, 20:26
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Используйте DisplayObject.transform.matrix - немного сложнее, зато таких вот глюков не будет.
__________________
Hell is the possibility of sanity

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

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
зато таких вот глюков не будет.
А где глюк то? Это абсолютно нормальное поведения объекта. Вместе с поворотом объекта повернется и его внутренняя система координат, и ширина и высоба объекта по прежнему будут считаться относительно x и y осей соответстывенно, а учитывая, что после поворота системы координат на 90 градусов, ось x будет направлена вертикально, ничего удивительного в происходящем нет.
Собственно, матрица тут тоже самое будет делать.

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

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
goodguy, нет, там у height и width глюк правда есть. Если использовать и вращение и высоту/ширину - поведение будет не очевидным и не предсказуемым.

Поэтому нужно юзать матрицы. scaleX и scaleY останутся предсказуемыми, но с ними не так удобно работать при более-менее сложных трансформациях.

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

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
goodguy, нет, там у height и width глюк правда есть.
Странно. Первый раз отсюда об этом узнаю. Ок, а в чем тогда непредсказуемость?

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Глюк заключается в том, что после поворота то ли высоту то ли ширину уже никак не поменять, или изменение приведет к симметричному изменению другого параметра... вобщем, используя только высоту и ширину не получится задать нужные размеры.
__________________
Hell is the possibility of sanity

Старый 09.12.2011, 20:59
crazyone вне форума Посмотреть профиль Отправить личное сообщение для crazyone Найти все сообщения от crazyone
  № 7  
Ответить с цитированием
crazyone
 
Аватар для crazyone

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Не помню точно детали и специфику, но выполнив, например, вот этот код, в наличии глюков сомневаться перестаешь:
Код AS3:
var s:Shape = new Shape();
			s.graphics.beginFill(0xff0000, 1);
			s.graphics.drawRoundRect( 0, 0, 200, 100, 10);
			s.graphics.endFill();
 
			s.x = 200;
			s.rotation = 90;
			s.height = 20; // если удалить эту строчку, внешний вид будет совсем другим.
			s.height = 200;
			addChild(s);

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

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Цитата:
Сообщение от wvxvw Посмотреть сообщение
Глюк заключается в том, что после поворота то ли высоту то ли ширину уже никак не поменять, или изменение приведет к симметричному изменению другого параметра... вобщем, используя только высоту и ширину не получится задать нужные размеры.
Точно. Только что проверил. Симметрично объект вырос )

Старый 09.12.2011, 21:42
Alexmody вне форума Посмотреть профиль Отправить личное сообщение для Alexmody Найти все сообщения от Alexmody
  № 9  
Ответить с цитированием
Alexmody

Регистрация: Dec 2010
Сообщений: 177
Код AS3:
visual.transform.matrix.scale(2, 1);
После того, как я изменил матрицу у клипа, какую нужно вызвать ф-ю, чтобы графический клип visual изменился (промасштабировался по оси X), а то сейчас ни каких изменений?

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

блогер
Регистрация: Mar 2003
Адрес: Моск. обл.
Сообщений: 5,269
Записей в блоге: 6
нельзя напрямую изменить matrix, только через установку новой
Код AS3:
var mtrx:Matrix = visual.transform.matrix;
mtrx.scale(2, 1);
visual.transform.matrix = mtrx;

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

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

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


 


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


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