Показать сообщение отдельно
Старый 26.11.2012, 12:49
PainKiller вне форума Посмотреть профиль Отправить личное сообщение для PainKiller Найти все сообщения от PainKiller
  № 3  
Ответить с цитированием
PainKiller
 
Аватар для PainKiller

блогер
Регистрация: Sep 2011
Адрес: Москва
Сообщений: 533
Записей в блоге: 4
Вот пользуйтесь делал выпадающее плавно меню, при наведении на кнопку выпадает список. Работает на маске:
Код AS3:
package core.view.vo.ui.dropmenu
{
	import core.view.TopMenuMediator;
	import flash.display.Bitmap;
	import flash.display.SimpleButton;
	import flash.display.Sprite;
	import flash.events.MouseEvent;
	import com.greensock.TweenLite;
 
	import com.junkbyte.console.Cc;
 
	/**
	 * ...
	 * @author PainKiller
	 */
 
 
	public class  DropMenuItem extends Sprite
	{
		var btn:SimpleButton;
		var data:Object;
		var drop:Sprite;
		var _mask:Sprite;
 
		public function DropMenuItem (btn:SimpleButton, data:Object)
		{
			this.btn = btn;
			addChild (btn);
			this.data = data;
			createDrop ();
			createMask ();
			addEventListener (MouseEvent.MOUSE_OVER, onOver);
			addEventListener (MouseEvent.MOUSE_OUT, onOut);
			drop.x = (btn.width - drop.width) / 2;
		}
 
		private function createDrop ():void
		{
		    drop = new Sprite ();
			var top:Top = new Top (); // это картинка 
			drop.addChild (top);
			var y_pos:Number = top.height;
			for each (var obj in data.cat)
			{
				if (obj != undefined)
				{
					var punkt:DropMenuPunkt = new DropMenuPunkt (obj.name, obj.tpl); // это класс пункта меню, в нем прописано реагирование на клик и наведение мыши
					punkt.y = y_pos;
					y_pos += punkt.height;
					drop.addChild (punkt);
				}
			}
			var bottom:Bottom = new Bottom (); //картинка 
			bottom.y = y_pos;
			drop.addChild (bottom);
			drop.y = 70; //50
			addChild (drop);
			drop.visible = false;
		}
 
		private function createMask ():void
		{
			_mask = new Sprite ();
			_mask.graphics.beginFill (0x00FF00);
			_mask.graphics.drawRect (0, 0, drop.width, 1);
			_mask.graphics.endFill ();
			drop.addChild (_mask);
			drop.mask = _mask;
		}
 
		private function onOver (e:MouseEvent):void
		{
			drop.visible = true;
			TweenLite.to (_mask, 1.7, { height: drop.height } );
		}
 
		private function onOut (e:MouseEvent):void
		{
			TweenLite.to (_mask, 1.7, { height: 1, onComplete: fadeOut } );
		}
 
		private function fadeOut ():void
		{
			drop.visible = false;
		}
 
 
	}
 
}