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

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

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

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
По умолчанию Правильная реализация эффектов для мыши

Давненько я не делал всякие эффекты. Тогда я еще маловато знал об as3 и усердно зачитывал Мука. Итак, с утра что-то стукнуло в голову, дай-ка, думаю, пока выходной, понаделаю шаблончиков - авось когда пригодятся. Сделалось вот такое:
Код AS3:
package  {
	import flash.display.Shape;
	import flash.display.Sprite;
	import flash.events.Event;
	import kordum.utils.MathExtend;
 
	/** @author KorDum **/
 
	public class CursorStarEffect extends Sprite {
		private var arrStar:Vector.<Shape> = new Vector.<Shape>();
		private var speedRotation:uint = 10;
		private var alphaDown:Number = .1;
 
		public function CursorStarEffect() {
			addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void {
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// entry point
 
			var i:uint;
			for (i = 0; i < 15; i++) createStar();
			this.addEventListener(Event.ENTER_FRAME, onEnterFrame);
		}
 
		private function onEnterFrame(e:Event):void {
			for each (var star:Shape in arrStar) {
				star.rotation += speedRotation + MathExtend.randomRange( -5, 5);
				star.alpha -= alphaDown;
				if (star.alpha <= 0) {
					arrStar.splice(arrStar.indexOf(star), 1);
					removeChild(star);
					createStar();
				}
			}
		}
 
		private function createStar():void {
			var star:Shape = new Shape();
			star.graphics.beginFill(0x000000);
			star.graphics.drawRect(MathExtend.randomRange(-10, 10), MathExtend.randomRange(-10, 10), 10, 10);
			star.x = stage.mouseX + MathExtend.randomRange(-10, 10);
			star.y = stage.mouseY + MathExtend.randomRange(-10, 10);
			arrStar.push(star);
			addChild(star);
		}
	}
}
Кому лень тестировать, скажу, что это своего рода крутящиеся звездочки, образующие хвост за курсором. Вообще, можно в конструктор пихать любой графический объект, будь то звезда, квадрат или еще чего, но вариант черновой и меня больше всего интересует, правильная ли реализация, что можно поменять, изменить?
__________________
тут я

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

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

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


 


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


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