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

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

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

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
По умолчанию Метод setTo класса Matrix

Добрый день!
Возникла задача присвоить текущей матрице отдельные значения, к примеру изменить tx и ty, но не трогать b и c.
И вот увидел метод setTo. Думал что это то что нужно, но возникает ошибка
Цитата:
Call to a possibly undefined method setTo through a reference with static type flash.geom:Matrix.
Как так?

Приходиться писать так:
Код AS3:
var mSource:Matrix = _canvas.transform.matrix;
	mSource.a = mBack.a;
	mSource.d = mBack.d;
	mSource.tx = mBack.tx;
	mSource.ty = mBack.ty;
Подскажите может есть более лаконичный способ.
Спасибо!

P.S. Проблема решена, нужно было сначала посмотреть на версию среды выполнения: Flash Player 11, AIR 3.0, Flash Lite 4


Последний раз редактировалось alexandrratush; 29.04.2014 в 20:50. Причина: Проблема решена
Старый 29.04.2014, 23:07
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 2  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
alexandrratush - я не понял, а в чем сложность
Код AS3:
var mSource:Matrix = _canvas.transform.matrix;
mSource.tx = 1;
Какие свойства нужны такие и задал. А SetTo как раз ПРОСИТ все написать, а не только те, что требуется отдельно.
__________________
Марк Tween

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

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Цитата:
Какие свойства нужны такие и задал. А SetTo как раз ПРОСИТ все написать, а не только те, что требуется отдельно.
Да вы правы, что придется задавать и хранить все свойства. Значит вместо одной строчки буду писать четыре.

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

блогер
Регистрация: Jul 2013
Адрес: Север
Сообщений: 1,918
Записей в блоге: 23
Отправить сообщение для ZackMercury с помощью ICQ Отправить сообщение для ZackMercury с помощью Skype™
Цитата:
Сообщение от alexandrratush Посмотреть сообщение
Да вы правы, что придется задавать и хранить все свойства. Значит вместо одной строчки буду писать четыре.
Можно статический метод написать, в него передаёте первое и второе, а в нём присваиваете всё, что нужно
Это на случай, если у вас много раз повторяется)

А так, это просто может повысить читабельность кода.
__________________
There is no thing in this world that is not simple.

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Сообщение от alexandrratush Посмотреть сообщение
Да вы правы, что придется задавать и хранить все свойства. Значит вместо одной строчки буду писать четыре.
Код AS3:
var mSource:Matrix = _canvas.transform.matrix;
mSource.setTo(mBack.a, mSource.b, mSource.c, mBack.d, mBack.tx, mBack.ty);
__________________
משיח לא בא
משיח גם לא מטלפן

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

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
alatar вы гений. Спасибо!
А мне пора брать выходной, стыдно не додуматься до такой простоты.

Старый 30.04.2014, 19:32
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 7  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
Хоть убей, я так и не понял, что тут гениального и в чем в итоге была задача. Как было сказано вначале темы - хочу задать ОПРЕДЕЛЕННЫЕ свойства.
matrix.tx =
это самое быстрое.
Вариант который предложил alatar - , об этом уже было сказано, но тут вы принудительно пишите ТЕ свойства, которые НЕ надо изменять, например. Толи ТС неверно задал вопрос, то ли я его неверно прочитал. Но суть та же, что setTo , что в 4 строки - разницы никакой, везде надо записать ВСЕ свойства, хотя в 4 строки - все записывать не надо
__________________
Марк Tween

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

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
in4core win. Примерно на миллионе операций разница уже будет чувствительна.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

Старый 01.05.2014, 04:28
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 9  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
dimarik - я не против, я думаю даже ТС - не думает о 1 млн операций, тут вопрос помомему не о скорости стоял.
__________________
Марк Tween

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

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Изначально я так и писал:
Код AS3:
var mSource:Matrix = _canvas.transform.matrix;
	mSource.a = mBack.a;
	mSource.d = mBack.d;
	mSource.tx = mBack.tx;
	mSource.ty = mBack.ty;
Но потом случайно увидел метод setTo, и подумал попробовать использовать его. По докам в принципе все понял, но как известно Adobe не всегда раскрывает все секреты в офф. док., нужно проверять в работе.

Метод доступен только с версии 11. Вот и пришлось создать тему. Разгадку понял только через 2 минуты после создания топика.

Про скорость работы речь не идет. Я хотел понять как использовать этот метод, и вообще как удобней всего было бы.
Задача простая была. После каждого зума изображения сохраняем в массиве копию матрицы с определенными свойствами (смещение и скейл), а после выбираем предпоследнюю копию матрицы, и изменяем текущую. Вот и все.

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

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

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


 


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


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