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

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

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

Регистрация: Apr 2010
Сообщений: 8
По умолчанию MovieClip, следующий за мышкой

Доброго времени суток!
При нахождении мыши над кнопкой появляется панелька, которая должна следовать за мышью во время нахождения мыши над кнопкой.
Пока у меня получилось только то, что панелька появляется при наведении мыши и находится в одном месте.
Код такой:
Код AS3:
button.addEventListener(MouseEvent.MOUSE_OVER, func1);
 
function func1(e:MouseEvent):void{
//Info - объект MovieClip
Info.visible = true;
Info.x = mouseX+10;
Info.y = mouseY-50;
}
Заранее спасибо!

Старый 26.04.2010, 11:54
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 2  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Старый добрый способ

Код AS3:
var dx:Number = mouseX - Info.x;
var dy:Number = mouseY - Info.y;
var angle:Number = Math.atan2 (dy, dx);
var xmov:Number = Math.cos(angle);
var ymov:Number = Math.sin(angle);
if (Math.sqrt(dx*dx + dy*dy) > 15){
	Info.x += xmov;
	Info.y += ymov;
}
Или еще древнее и проще:
Код AS3:
Info.x -= (Info.x - mouseX) / 4; //где-то читал, что лучше использовать побитовый сдвиг >> 2,
Info.y -= (Info.y - mouseY) / 4; // якобы он быстрее, разницы я так и не увидел
И да, не называйте имена мувиклипов с большой буквы. Это для классов.


Последний раз редактировалось КорДум; 26.04.2010 в 11:57.
Старый 26.04.2010, 13:44
mickfallout вне форума Посмотреть профиль Отправить личное сообщение для mickfallout Найти все сообщения от mickfallout
  № 3  
Ответить с цитированием
mickfallout
 
Аватар для mickfallout

Регистрация: Jun 2009
Адрес: Москва
Сообщений: 170
Цитата:
Сообщение от nickolay08 Посмотреть сообщение
Доброго времени суток!
При нахождении мыши над кнопкой появляется панелька, которая должна следовать за мышью во время нахождения мыши над кнопкой.
Если плавность не нужна, а хочется нечто типа startDrag'а -
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	public class Main extends Sprite 
	{
		private var sprite:Sprite = new Sprite();
		private var backGround:Sprite = new Sprite();
		public function Main():void 
		{
			super();
			addChild(backGround);
			addChild(sprite);
			backGround.graphics.beginFill(0xE0E0E0);
			backGround.graphics.drawRect(0, 0, stage.stageWidth, stage.stageHeight);
			backGround.graphics.endFill();
			sprite.alpha = 0.1;
			sprite.graphics.beginFill(0xFF0000);
			sprite.graphics.drawCircle(0, 0, 10);
			sprite.graphics.endFill();
			sprite.addEventListener(MouseEvent.ROLL_OVER, mouseOverListner);
		}
		private function mouseOverListner(event:MouseEvent):void
		{
			sprite.alpha = 1;
			addEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListner);
		}
		private function mouseMoveListner(event:MouseEvent):void
		{
			sprite.x = event.stageX
			sprite.y = event.stageY
		}
		private function mouseOutListner(event:MouseEvent):void
		{
			sprite.alpha = 0;
			removeEventListener(MouseEvent.MOUSE_MOVE, mouseMoveListner);
		}
	}
}
P.S. это пример, работать будет только если sprite не добавлен в контейнер с ненулевыми координатами.


Последний раз редактировалось mickfallout; 26.04.2010 в 13:49.
Создать новую тему Ответ Часовой пояс GMT +4, время: 22:25.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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