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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 14.12.2012, 17:17
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 1  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

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

Доброго времени суток.
Делаю свой free transform и пытаюсь менять размеры одновременно целой группе элементов.
Это было бы сравнительно просто осуществить с помощью матриц / scaleX/Y. Но к сожалению, при scale текстовых полей, в них деформируется текст, чего не должно происходить в моём приложении.
То есть мне нужно использовать только ширину и высоту контейнера и детей.
Контейнер у меня лишь условность - он не сожержит детей, а просто прямоугольник который размечает границы группы.

Попытался на рисунке изобразить что мне нужно.
Известны dx, dy, ширина и координаты контейнера и каждого элемента (в том числе и bounding box повёрнутых элементов) до ресайза.

Нужно узнать height' и width' (как изменились ширина и высота элемента после ресайза), и dx', dy' (на сколько переместился элемент в группе).

Пока ничего не получается, а именно совместить перемещение с изменением ширины/высоты элемента, либо слишком перемещаю и элемент вылазит за границы, либо недорастягиваю/сжимаю, и он опять же вылазит за пределы группы.
Миниатюры
Нажмите на изображение для увеличения
Название: graphic.jpg
Просмотров: 53
Размер:	63.6 Кб
ID:	28828  

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

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
а при изменении width, scaleX и transform разве не меняются?

Старый 14.12.2012, 17:39
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 3  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Да, вы правы, что-то я запутался.

Значит осталось узнать на сколько перемещается элемент при ресайзе группы.

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

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
Цитата:
Сообщение от AlexLucas Посмотреть сообщение
Это было бы сравнительно просто осуществить с помощью матриц
http://www.actionscript-flash-guru.c...onscript-3-as3
http://www.greensock.com/transformmanageras3/

Старый 17.12.2012, 14:44
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 5  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Да, я попробовал способ описанный в первой ссылке, но всё-таки при scale происходит и изменение размера текста в текст поле, а при изменении ширины/высоты - нет. Видимо это потому что при scale также происходит изменение размеров всех детей элемента.
Класс во второй ссылке платный, и там нельзя ресайзить группу элементов в которой содержится текстовое поле, только перемещать, видимо товарищ столкнулся с той же проблемой.
Так что вопрос остаётся открытым

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

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
http://help.adobe.com/ru_RU/as3/dev/...0204-7df3.html

Старый 17.12.2012, 18:45
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 7  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
Не понял что вы хотите этим сказать.
Я использую spark:TextArea.

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

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
"При изменении свойств width или height экранного объекта Flash Player и AIR обновляют также свойства scaleX и scaleY объекта.

Примечание. Объекты TextField являются исключением из этого поведения при масштабировании."

у TextField свое поведение. если нужно чтобы TextField вел себя как прочие дисплэйные объекты, его нужно поместить в контэйнер.
у гринсокса в примере два текста. первое - инпутТекстФилд, которое нельзя ресайзить в группе. но есть и второе. которое в контэйнере с графикой (человечек).

Старый 17.12.2012, 20:01
AlexLucas вне форума Посмотреть профиль Отправить личное сообщение для AlexLucas Найти все сообщения от AlexLucas
  № 9  
Ответить с цитированием
AlexLucas
[+1 05.11.12]
 
Аватар для AlexLucas

Регистрация: Feb 2011
Сообщений: 431
На странице того примера гринсока вот что написано
Цитата:
You can set the scaleMode of any TransformItem to SCALE_WIDTH_AND_HEIGHT so that the width/height properties are altered instead of scaleX/scaleY. This can be helpful for text-related components because altering the width/height changes only the container’s dimensions while retaining the text’s size.
то есть scale меняет размеры текста, вместо этого товарищ меняет width / height.
А группы которые содержат текстовые поля - он тупо не даёт их растягивать, а мне это нужно сделать.
То что я оберну поле спрайтом, не даст тексту искажаться при scale? Просто они у меня уже находятся внутри контейнера, и я всё равно наблюдаю искажение текста.
А тот текст рядом с человечком, я думаю это графика а не текст поле.


Да и вообще, какая разница - width/height или scaleX/scaleY, в данном случае, в группе есть один объект под углом в ~30 градусов, другой - 0 градусов, при ресайзе scaleX и scaleY для каждого будут разными, как их вычислить?


Последний раз редактировалось AlexLucas; 17.12.2012 в 20:31.
Старый 18.12.2012, 12:01
Stone вне форума Посмотреть профиль Отправить личное сообщение для Stone Найти все сообщения от Stone
  № 10  
Ответить с цитированием
Stone
 
Аватар для Stone

Регистрация: May 2001
Адрес: Москва
Сообщений: 670
сразу применять к каждому объекту в группе свои значение, как если бы мы трансформировали только его. только центр трансформации брать от группы.

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

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

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


 


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


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