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

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

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

Регистрация: Aug 2011
Сообщений: 29
По умолчанию Глюки скейла

Привет.

Столкнулся со странной проблемой.

Пытаюсь реализовать лазерный луч.

Сам луч у меня 1х1 белый пиксель с глоу, который должен тянуться и вращаться.

Код AS3:
var distance : int;
var angle : int;
function getDistance (): void
{
distance=Math.sqrt((circle_2.x - circle_1.x)*(circle_2.x - circle_1.x) + (circle_2.y - circle_1.y)*(circle_2.y - circle_1.y));
}
function getAng():void
{
angle=Math.atan2(circle_2.y - circle_1.y, circle_2.x - circle_1.x) * 180 / Math.PI;
}
stage.addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveFunc)
function mouseMoveFunc(e:MouseEvent):void
{
circle_2.x=mouseX;
circle_2.y=mouseY;
getDistance();
getAng();
laser.rotation=angle;
laser.width=distance;
laser.x=(circle_1.x+circle_2.x)/2;
laser.y=(circle_1.y+circle_2.y)/2;
}
Если не вешать второй кружок на мышку то все ок с любыми координатами.
Если убрать вращение то тоже все ок ( за исключением того что лазер всегда горизонтальный естественно)

Но вот все вместе дает проблему, мой пиксель непропорционально скейлится не только в ширину но и в длинну превращаясь в прямоугольник.

То что выходит - в аттаче.

Помогите, пожалуйста, разобраться.
Вложения
Тип файла: zip laser_test_1.zip (1.6 Кб, 31 просмотров)


Последний раз редактировалось reQuiem; 28.12.2011 в 14:12.
Старый 28.12.2011, 13:33
TanaTiX вне форума Посмотреть профиль Отправить личное сообщение для TanaTiX Найти все сообщения от TanaTiX
  № 2  
Ответить с цитированием
TanaTiX
 
Аватар для TanaTiX

блогер
Регистрация: Feb 2008
Сообщений: 1,453
Записей в блоге: 4
Была у меня похожая проблема, почитай тему

ЗЫ. аттача нет.
__________________
Ну все, теперь Забава м-о-я.
Гы-гы, а корабль мой!

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

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Может просто стоит перерисовывать каждый раз линию, не?
__________________
http://www.chessmax.ru

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

Регистрация: Aug 2011
Сообщений: 29
TanaTiX

Поправил, swf напрямую не приаттачился.

Тему почтиаю. спасибо.

Inet_PC

А я не рисую линию вообще. я скейлю пиксель вдоль виртуального отрезка, и каждый раз заново.

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

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

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

Регистрация: Aug 2011
Сообщений: 29
Цитата:
Сообщение от goodguy Посмотреть сообщение
Лучше как раз рисовать (программно естественно).
Ок, допустим, но я делаю не линию, а именно так для того, чтобы можно было применить например фильтр глоу, или скажем нарисовать не просто белый пиксель а тайл-срез какой то кастомной полоски и скейлить ее в нормальный красивый луч.

Но пока мне сошло бы и просто глоу. Как можно применять фильтры к линии?

Старый 28.12.2011, 14:21
Inet_PC вне форума Посмотреть профиль Отправить личное сообщение для Inet_PC Посетить домашнюю страницу Inet_PC Найти все сообщения от Inet_PC
  № 7  
Ответить с цитированием
Inet_PC
 
Аватар для Inet_PC

Регистрация: Feb 2009
Адрес: Гы...поди, найди!
Сообщений: 853
Записей в блоге: 1
Цитата:
А я не рисую линию вообще.
Я заметил, по этому и предложил.
Цитата:
Как можно применять фильтры к линии?
Код AS3:
var line: Shape = new Shape();
//draw
line.filters = [new GlowFilter()];
__________________
http://www.chessmax.ru

Старый 28.12.2011, 14:37
reQuiem вне форума Посмотреть профиль Отправить личное сообщение для reQuiem Найти все сообщения от reQuiem
  № 8  
Ответить с цитированием
reQuiem

Регистрация: Aug 2011
Сообщений: 29
Цитата:
Сообщение от Inet_PC Посмотреть сообщение
Я заметил, по этому и предложил.

Код AS3:
var line: Shape = new Shape();
//draw
line.filters = [new GlowFilter()];
Спасибо, попробую, но это все равно ограничивает меня в функционале, например заанимировать луч теперь сложно и тд. Хорошо бы побороть этот глюк.

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

блогер
Регистрация: Nov 2007
Адрес: Киев
Сообщений: 557
Записей в блоге: 2
Тогда тебе нужно использовать scaleX вместо width.
__________________
aka doctorstal

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

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
Цитата:
Тогда тебе нужно использовать scaleX вместо width.
Это не существенно. Просто поворачивать надо после масштабирования, а не до. И перед масштабированием сбрасывать вращение.

Добавлено через 1 минуту
И да, такое поведение не глюки.
__________________
משיח לא בא
משיח גם לא מטלפן

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

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

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


 


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


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