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

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

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

Регистрация: Jun 2008
Сообщений: 283
По умолчанию изменение skew в зовисимости от положения мышки

Здравсвуйте
Сделел небольшой ролик, в котором кружок реагирует на положение мышки, таким образом, что чем дальше от него мышка тем он овальнее и относительно мышки овал должен быть расположен "боком" использую для этого програмный SKEW:

Код AS1/AS2:
import flash.geom.Matrix;
matrix = mc.transform.matrix;
 
onMouseMove = function ():Void {
	//_______ scew X 
	udal_scewX = (_xmouse-mc._x)/1000;
	matrix.b = 0-udal_scewX;
	//_______ scew Y
	udal_scewY = (_ymouse-mc._y)/1000;
	matrix.c = 0+udal_scewY;
	//
	mc.transform.matrix = matrix;
};
Однакоко не все так как хотелось бы, при от воде мышки в верхний правый и левый угол, овал своей вершиной в них "смотрит"

Подскажите пожалуйста как добиться требуемого результат
Благодарю

Исходник прикрепил
Вложения
Тип файла: rar Skew.rar (5.0 Кб, 39 просмотров)

Старый 24.03.2010, 04:33
Evgan вне форума Посмотреть профиль Отправить личное сообщение для Evgan Найти все сообщения от Evgan
  № 2  
Ответить с цитированием
Evgan

Регистрация: Jun 2008
Сообщений: 283
почти добился желаемого:
Код AS1/AS2:
import flash.geom.Matrix;
matrix = mc.transform.matrix;
onMouseMove = function ():Void {
	//_______ определение ростояния до середины символа
	udalX = Math.abs(_xmouse-mc._x);
	udalY = Math.abs(_ymouse-mc._y);
	//_______ определение к какой оси мы ближе
	if (Math.abs(_xmouse-mc._x)<Math.abs(_ymouse-mc._y)) {
		D = udalX;
	} else {
		D = udalY;
	}
	//________________ В зовисимости от того в какой четверти находимся определяем знак 
	//верхний правый угол
	if ((_xmouse-mc._x)>0 && (_ymouse-mc._y)<0) {
		Dx = D;
	}
	//нижний правый угол                
	if ((_xmouse-mc._x)>0 && (_ymouse-mc._y)>0) {
		Dx = -D;
	}
	// нижний левый угол                 
	if ((_xmouse-mc._x)<0 && (_ymouse-mc._y)>0) {
		Dx = D;
	}
	// верхний левый угол                 
	if ((_xmouse-mc._x)<0 && (_ymouse-mc._y)<0) {
		Dx = -D;
	}
	//_______ scew X                  
	matrix.b = 0+Dx/1000;
	mc.transform.matrix = matrix;
};
Одноко, остался один момент, когда мышка находится справого или левого края по середине, то кружок круглый становится, а необходимо что бы он так же овальным был, то есть получается необходимо
Код AS1/AS2:
matrix.a
, то же самое и для вертикальной плоскости
Код AS1/AS2:
matrix.d
.
Все мои попытки по мпнипуляции
Код AS1/AS2:
matrix.a
и
Код AS1/AS2:
matrix.d
не увеньчались успехом, то есть проблемма в том что у меня в тот момент когда ширина должна уменьшаться уменьшается и высота, не получается незовисимую логику сделать. Может кто сталкивался с этим и подскажит к чему привязываться?
Благодарю
Исхоодник прекрипил
Вложения
Тип файла: rar Skew3.rar (6.3 Кб, 47 просмотров)

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

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

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


 


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


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