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

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

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

Регистрация: Dec 2005
Сообщений: 20
Question Глючная анимация.

Здравствуйте!

Разрабатываю флешку для сайта. Посмотреть можно тут http://94.229.12.216/ Так вот, соты должны увеличиваться при наведении (плавно, анимированно, красиво) и уменьшаться в обратном направлении так же плавно и красиво, когда мышку убираешь. Я сделал анимацию с помощью твинов, но вот незадача: если активно поёрзать мышкой по сотам, то они начинают сдвигаться с места. Причем чем дольше ставишь duration для tween'а, тем больше вероятность что сота уползет в сторону.

Вот код класса соты:
Код AS3:
package main{
	import flash.display.MovieClip;
	import flash.events.Event; 
    import flash.events.MouseEvent; 
	import flash.net.*;
	import flash.filters.*;
	//import fl.motion.Animator;
	//import flash.display.Sprite;
	import fl.transitions.Tween;
 	import fl.transitions.easing.*;
 	import fl.transitions.TweenEvent;
 	import flash.text.TextField;
 	import flash.geom.Point;
 
	dynamic public class sota extends MovieClip{
	var Tweens = new Array();
	var Picture = new MovieClip();
	public var Title:String = "";
	public var Desc:String = "";
	public var Link:String = "";
 
 
		public function sota() {
			// constructor code
			buttonMode = true;
			useHandCursor = true;
			addEventListener(MouseEvent.ROLL_OVER, SotaEnter);
			addEventListener(MouseEvent.ROLL_OUT, SotaLeave);
			addEventListener(MouseEvent.CLICK, gotourl);
 
		}
		public function getPicture(pic:MovieClip):void {
			Picture = pic;
		}
		public function setTitle(titl:String):void {
			Title = titl;
		}
		public function setDesc(titl:String):void {
			Desc = titl;
		}
		public function setLink(titl:String):void {
			Link = titl;
		}
		public function SotaEnter(e:MouseEvent):void {		
			// Поднимаем соту выше остальных
			this.parent.addChildAt(this, parent.numChildren-1);
 
			(parent.parent as MovieClip).desc.text = Desc;
			title.text = Title;
			Tweens[8] = new Tween(plashka, "alpha", Strong.easeOut, 0, 1, 1, true);
 
			addChildAt(title, numChildren-1);
			if(Picture.name != Picture.parent.getChildAt(Picture.parent.numChildren-1).name) {
				Picture.parent.addChildAt(Picture, Picture.parent.numChildren-1);
				var myTween:Tween = new Tween(Picture, "alpha", Strong.easeOut, 0, 1, 1, true);
			}
 
			// Запишем анимацию увеличения соты
 
			Tweens[0] = new Tween(contur, "scaleX", Back.easeOut, 1, 1.2, 10, false);
			Tweens[1] = new Tween(contur, "x", Back.easeOut, contur.x, contur.x-0.1*contur.width, 10, false);
			Tweens[2] = new Tween(contur, "scaleY", Back.easeOut, 1, 1.2, 10, false);
			Tweens[3] = new Tween(contur, "y", Back.easeOut, contur.y, contur.y-0.1*contur.height, 10, false);
			Tweens[4] = new Tween(maska, "scaleX", Back.easeOut, 1, 1.2, 10, false);
			Tweens[5] = new Tween(maska, "x", Back.easeOut, maska.x, maska.x-0.1*maska.width, 10, false);
			Tweens[6] = new Tween(maska, "scaleY", Back.easeOut, 1, 1.2, 10, false);
			Tweens[7] = new Tween(maska, "y", Back.easeOut, maska.y, maska.y-0.1*maska.height, 10, false);
 
 
			// Добавляем фильтр свечения
			// Параметры свечения
			var color:Number = 0x33CCFF;
            var alpha:Number = 0.8;
            var blurX:Number = 8;
            var blurY:Number = 8;
            var strength:Number = 2;
            var inner:Boolean = false;
            var knockout:Boolean = false;
            var quality:Number = BitmapFilterQuality.HIGH;
 
			// Сам фильтр
            var filterG = new GlowFilter(color,
                                  alpha,
                                  blurX,
                                  blurY,
                                  strength,
                                  quality,
                                  inner,
                                  knockout);
 
			// Добавляем фильтр в список фильтров
			filters = [filterG];
			trace("up");
 
		}
		public function SotaLeave(e:MouseEvent):void {
 
			for each (var myTween in Tweens) {
				myTween.yoyo();
			}
 
			// Очищаем значение фильтра
			filters = [];
			title.text = '';
			trace("down");
		}
		public function gotourl(e:MouseEvent) {
		   		var my_request:URLRequest = new URLRequest(Link);
		   		navigateToURL(my_request, "_self");
		}
	}
 
}
Сами соты представляю собой картинки с масками в виде соты и контуром соты:
http://cl.ly/3p262n2d1j3Q171D3x3s


У кого-нибудь есть идеи по поводу данного глюка?


Последний раз редактировалось MadEx; 28.10.2011 в 20:56.
Создать новую тему   Часовой пояс GMT +4, время: 02:59.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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