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

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

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 25.11.2012, 20:33
Nickolai вне форума Посмотреть профиль Отправить личное сообщение для Nickolai Найти все сообщения от Nickolai
  № 1  
Ответить с цитированием
Nickolai
[+6 15.11.12]

Регистрация: Oct 2012
Сообщений: 63
По умолчанию Выпадающий ПЛАВНО список

Добрый вечер. Как сделать выпадающий список?Подскажите сам алгоритм с кодом разберусь. К примеру есть кнопка это да, мы к ней подключаем слушателя мышки, на клик у нас должен ПЛАВНО вываливаться вниз скажем под кнопкой черный квадрат, высота квадрата зависит от того сколько на нем будет написанно текста. И скажем по нажатию еще раз этой кнопки мы проделывем обратный алгоритм, квадрат заезжает обратно под кнопку.

Старый 25.11.2012, 21:05
Wolsh вне форума Посмотреть профиль Отправить личное сообщение для Wolsh Найти все сообщения от Wolsh
  № 2  
Ответить с цитированием
Wolsh
Нуб нубам
 
Аватар для Wolsh

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
При нажатии проверяете флаг (раскрыто/нераскрыто) и меняете значение переменной, хранящей целевую координату у (то есть тот у, к которому должен приползти квадрат в конце). Подписываетесь на ентерфрейм. В обработчике прибавляете к текущему у квадрата какую-то величину (шаг), скажем для начала 5 пикселей (потом можно сделать динамический расчет шага). И проверяете, не слишком ли далеко уже уполз квадрат. Если уполз - назначаете его у целевую координату и отписываетесь от ентерфрейм. Меняете флаг состояния раскрытости на противоположный.
__________________
Reality.getBounds(this);

Старый 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;
		}
 
 
	}
 
}

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

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

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


 


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


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