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

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

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

Регистрация: Mar 2009
Сообщений: 39
По умолчанию Смена курсора.

Всем привет.Хочу менять курсор мыши при наведении на свой прямоугольник. Проблема в том, что подставляемый вместо курсора, клип появляется не на месте курсора, и иногда еще возникает мигание.
Вот код.
Код AS3:
private function createRegionForRotation() {
			var rect:Sprite = new Sprite();			
			rect.graphics.beginFill(eColour);
			rect.graphics.drawRect(0, 0, eWidth/3, eHeight);
			rect.graphics.endFill();
			rect.addEventListener(MouseEvent.MOUSE_OVER, showCursor);
			rect.addEventListener(MouseEvent.MOUSE_OUT, hideCursor);
			return rect;
		}
 
		private function showCursor(event:MouseEvent) {
			if (event.target is Sprite) {
				var m:Point = new Point(mouseX, mouseY)					
				m = localToGlobal(m);				
				m = parent.globalToLocal(m);
				if (!this.cfRotation) {
					this.rotatedNow = 1; // init
					Mouse.hide();
					this.cfRotation = new CursorForRotation();					
					this.cfRotation.gotoAndStop(1);
					this.cfRotation.x = m.x;
					this.cfRotation.Y = m.y;
					trace(m.y);
					parent.addChild(this.cfRotation);					
				}
				//this.rx = stage.mouseX;
				//this.ry = stage.mouseY;				
				//this.cfRotation.x = m.x;
				//this.cfRotation.Y = m.y;
				//event.updateAfterEvent();
				this.addEventListener(MouseEvent.MOUSE_MOVE, onMove);					
			}	
		}
 
		private function onMove(event:MouseEvent) {
		/*	if (this.rotatedNow>0) { // поварачиваем
				this.rotatedNow = 2; // start rotate						
				//event.updateAfterEvent();
			}		
		*/
			if (this.cfRotation) {
				var m:Point = new Point(mouseX, mouseY);
				m = localToGlobal(m);
				m = parent.globalToLocal(m);
				this.cfRotation.x = m.x;
				this.cfRotation.Y = m.y;
			}			
		}
 
		private function hideCursor(event:MouseEvent) {
			if (event.target is Sprite) {
				if (this.rotatedNow != 2) {
					this.removeEventListener(MouseEvent.MOUSE_MOVE, onMove);
					this.rotatedNow = 0;
					parent.removeChild(this.cfRotation);
					this.cfRotation = null;
					Mouse.show();
				}	
			}	
		}
Добавлено через 23 часа 29 минут
Всем спасибо за помощь. Ошибки идиотские. Вместо this.cfRotation.Y = m.y; надо this.cfRotation.y = m.y;(обратите внимание на y). И для того чтобы мовик плавно ходил за мышкой для курсора нужен startDrag.

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

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

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


 


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


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