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

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

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

Регистрация: Sep 2011
Адрес: Планета Земля
Сообщений: 42
Question кнопка с выезжающим меню

Помогите кто может.
Прочел кучу тем ничего не выходит.
Мне нужно сделать кнопку при нажатии на которою выплывало бы меню с другими кнопками.
Как на той картинке.
Как сделать лучше всего?
Буду благодарен.
Изображения
 

Старый 04.10.2011, 01:49
fish_r вне форума Посмотреть профиль Отправить личное сообщение для fish_r Посетить домашнюю страницу fish_r Найти все сообщения от fish_r
  № 2  
Ответить с цитированием
fish_r
 
Аватар для fish_r

блогер
Регистрация: Jan 2011
Сообщений: 1,162
Записей в блоге: 4
С такими вопросами надо бы в раздел вакансии обращаться, вы же просите не помочь, а по сути, выполнить за вас работу. Задайте конкретный вопрос. Что у вас именно не выходит? Что делали? В какой среде? В кадрах? В коде? Если есть код покажите. Тогда вам как-то можно будет конкретно помочь.

Старый 04.10.2011, 02:03
hunterr вне форума Посмотреть профиль Отправить личное сообщение для hunterr Найти все сообщения от hunterr
  № 3  
Ответить с цитированием
hunterr
 
Аватар для hunterr

Регистрация: Sep 2011
Адрес: Планета Земля
Сообщений: 42
Пробовал сделать кнопку MovieClip-ом а на выезжающем меню кнопки. Но ничего толкового не вышло. Может можно сделать как-то попроще? Я еще новичок в этом деле хотел спросить у опытных людей.

Старый 04.10.2011, 03:15
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 4  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
1. Создается класс управляющий деревом.
2. Создается класс-символ кнопки хидера и кнопки списка.
3. Создается xml файл ( для теста ) реализующий список.
Все.
По первому пункту : событийная модель ( эффекты по нажатию кнопок, настройка хеша дерева ) , реализация самого списка циклами используя п2 , ну и управление списком, что впринципе так же должно войти в событийку.
Тоесть к примеру : изначально видны только основные хидеры. по нажатию на 1й хидеры - циклом создаются субхидеры или однородные списки, при этом основные хидеры уезжают на высоту нового списка и т.д.
Сделать это очень просто, нужно только желание, тоесть сесть и начать пробовать все то, что я описал. потихоньку и неспеша...
Когда то писал что то похожее.... вот часть кода... так никогда не пишите))) это тока пример

Код AS3:
package in4core.tree
{
 
	import flash.display.Sprite;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.errors.IOError;
	import flash.events.Event;
	import flash.events.IOErrorEvent;
	import flash.events.ProgressEvent;
	import flash.events.MouseEvent;
 
	public class Tree extends Sprite
	{
 
		private var treeContainer:Sprite = new Sprite();
		private var loader:URLLoader = new URLLoader();
		private var request:URLRequest = new URLRequest();
		private var $data:Object;
		private var separator:uint;
		private var ident:uint;
 
 
		public function Tree(xmlURL:*, notURL:Boolean = false, separator:uint = 0, ident:uint = 20)
		{
			super();
			this.separator = separator;
			this.ident = ident;
			addChild(treeContainer);
 
			if (! notURL)
			{	
				request.url = xmlURL;
				loadStart();
			}
			else
			{
				$data = new XMLList(xmlURL);
				createMainNodes();
			}
		}
		private function loadStart():void
		{
			try
			{
				loader.load(request);
			}
			catch (err:IOError)
			{
				trace(err);
			}
			loader.addEventListener(Event.COMPLETE, onComplete);
			loader.addEventListener(Event.OPEN, onOpen);
			loader.addEventListener(IOErrorEvent.IO_ERROR, onError);
			loader.addEventListener(ProgressEvent.PROGRESS, onProgress);
		}
		private function onOpen(e:Event):void
		{
 
		}
		private function onProgress(e:ProgressEvent):void
		{
 
		}
		private function onComplete(e:Event):void
		{
			loader.removeEventListener(Event.COMPLETE, onComplete);
			loader.removeEventListener(Event.OPEN, onOpen);
			loader.removeEventListener(IOErrorEvent.IO_ERROR, onError);
			loader.removeEventListener(ProgressEvent.PROGRESS, onProgress);
			trace('Loading Complete');
			createTree(loader.data);
		}
		private function onError(e:IOErrorEvent):void
		{
			//trace('Loading denied : ' + e.text);
		}
		private function createTree(data:Object):void
		{
			$data = new XMLList(data);
			createMainNodes();
		}
		private function createMainNodes():void
		{
 
			for (var i = 0; i < $data.length(); i++)
			{
 
				var listHeader = new TreeHeader(separator,ident);
				listHeader.text = $data[i]. @ field;
				listHeader.y = (22 + separator) * i ;
				treeContainer.addChild(listHeader);
				if ($data[i].hasComplexContent())
				{
					listHeader.list = $data[i].children();
				}
				else
				{
					listHeader.gotoAndStop(2);
					listHeader.addEventListener(MouseEvent.CLICK, (root as Main).listClickEvent);
					listHeader.buttonMode = true;
					listHeader.mouseChildren = false;
				}
			}
			//trace('Tree created');
		}
	}
}
 
package in4core.tree
{
 
	import flash.display.MovieClip;
	import flash.events.MouseEvent;
	import flash.events.Event;
	import in4core.tree.TreeEvents;
	import flash.events.EventDispatcher;
	import flash.display.Sprite;
 
	public class TreeHeader extends MovieClip
	{
		private var state:String = 'close';
		private var cont:Sprite = new Sprite();
		private var separator:uint;
		private var ident:uint;
		public static var _mc:TreeHeader;
		public var url3d:String;
		public var Interface:String;
		public var Materials:String;
		public var Options:String;
		public var list:XMLList;
 
		public function TreeHeader(separator:uint = 0, ident:uint = 20)
		{
			super();
			this.track.visible = false;
			this.separator = separator;
			this.ident = ident;
			cont.y = y + 22 + separator;
			addChild(cont);
			setListeners();
		}
		public function set text(text:String):void
		{
			header.text = text;
		}
		public function get text():String
		{
			return header.text;
		}
		private function setListeners():void
		{
			plus.addEventListener(MouseEvent.CLICK, onClick);
			gh.addEventListener(MouseEvent.MOUSE_OVER, onOver);
			gh.addEventListener(MouseEvent.MOUSE_OUT, onOut);
			plus.addEventListener(TreeEvents.ITEM_IS_OPENED, itemOpen);
			plus.addEventListener(TreeEvents.ITEM_IS_CLOSED, itemClose);
			plus.addEventListener(TreeEvents.ITEM_IS_SELECTED, itemSelect);
			plus.buttonMode = true;
			this.buttonMode = true;
			header.mouseEnabled = false;
 
		}
		private function onClick(evt:Event):void
		{
			if (state == 'close')
			{
				plus.dispatchEvent(new TreeEvents(TreeEvents.ITEM_IS_OPENED,list));
				plus.gotoAndStop(2);
				state = 'open';
				this.track.visible = true;
			}
			else
			{
				plus.dispatchEvent(new TreeEvents(TreeEvents.ITEM_IS_CLOSED));
				plus.gotoAndStop(1);
				state = 'close';
				this.track.visible = false;
			}
			plus.dispatchEvent(new TreeEvents(TreeEvents.ITEM_IS_SELECTED));
		}
		private function onOver(evt:Event):void
		{
			gh.gotoAndPlay('Over');
		}
		private function onOut(evt:Event):void
		{
			gh.gotoAndPlay('Out');
		}
		private function itemOpen(e:TreeEvents):void
		{
			addChilds(list);
		}
		private function itemClose(e:TreeEvents):void
		{
			removeChilds();
		}
		private function itemSelect(e:TreeEvents):void
		{
			//trace('Selected is : ' + e.currentTarget.parent.header.text);
		}
		private function addChilds(data:XMLList):void
		{
			var intree:TreeHeader;
			if (data)
			{
				for (var i = 0; i < data.length(); i++)
				{
					if (data.length() > 0)
					{
						intree = new TreeHeader(separator,ident);
						var separation:uint =  (18+separator) * i;
						cont.addChild(intree);
						intree.text = data[i]. @ field;
						intree.y = separation;
						intree.x = ident;
						if (data[i].hasComplexContent())
						{
							intree.list = data[i].children();
						}
						else
						{
							intree.gotoAndStop(2);
 
							intree.addEventListener(MouseEvent.CLICK, (root as Main).listClickEvent);
							intree.url3d = data[i]. @ url3d;
							intree.Interface = data[i]. @Interface;
							intree.Options = data[i].@options;
							intree.Materials = data[i].@materials;
 
							intree.text = data[i]. @ field;
 
							intree.buttonMode = true;
							intree.mouseChildren = false;
						}
					}
				}
				if (intree.parent.parent.parent.parent is TreeHeader) {
					if (intree.currentFrame == 2) {
						intree.tt.visible = false;
					}
				}
				tweenInOut();
			}
		}
		private function removeChilds():void
		{
			while (cont.numChildren != 0)
			{
				cont.removeChildAt(0);
			}
			tweenInOut();
		}
		public function tweenInOut():void
		{
			for (var i = parent.getChildIndex(this)+1; i < parent.numChildren; i++)
			{
				parent.getChildAt(i).y = parent.getChildAt(i - 1).y + parent.getChildAt(i - 1).height-11 + separator;
			}
			if (parent.parent is TreeHeader)
			{
				(parent.parent as TreeHeader).tweenInOut();
			}
		}
		public function rewrite(mc:TreeHeader = null) {
			if (mc != null) {
				mc.text = mc.text;
			}
		}
	}
}
__________________
Марк Tween

Старый 04.10.2011, 05:26
vorodis2 вне форума Посмотреть профиль Отправить личное сообщение для vorodis2 Найти все сообщения от vorodis2
  № 5  
Ответить с цитированием
vorodis2

Регистрация: Feb 2011
Адрес: Украина Днепропетровск
Сообщений: 106
Как я понял те нужно дерево, используй чужие библтотеки.
http://vorodis2.com/#id:treeDemo
там есть мой класс а так же две ссылки на либы для этого

Старый 04.10.2011, 14:52
in4core вне форума Посмотреть профиль Отправить личное сообщение для in4core Найти все сообщения от in4core
  № 6  
Ответить с цитированием
in4core
[+4 06.05.14]
 
Аватар для in4core

Регистрация: Mar 2009
Сообщений: 4,219
Записей в блоге: 14
vorodis2 - работа Рябь на фото. есть ли исходник? посмотреть охота как с дисплейсом работают
__________________
Марк Tween

Старый 04.10.2011, 14:56
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 7  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
in4core Аналогично.
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Старый 04.10.2011, 15:18
Bgg вне форума Посмотреть профиль Отправить личное сообщение для Bgg Найти все сообщения от Bgg
  № 8  
Ответить с цитированием
Bgg
 
Аватар для Bgg

Регистрация: Jan 2009
Адрес: Петерсбург
Сообщений: 1,882
Цитата:
Сообщение от in4core Посмотреть сообщение
vorodis2 - работа Рябь на фото. есть ли исходник? посмотреть охота как с дисплейсом работают
http://silin.su/#AS3/filters/ripple

Старый 04.10.2011, 15:49
stweet вне форума Посмотреть профиль Отправить личное сообщение для stweet Найти все сообщения от stweet
  № 9  
Ответить с цитированием
stweet
 
Аватар для stweet

Регистрация: Mar 2010
Адрес: 54.713862552265084 = 20.442724227905273
Сообщений: 449
Отправить сообщение для stweet с помощью Skype™
Цитата:
Сообщение от Bgg Посмотреть сообщение
В исходнике нет класса RippleMap. Можно на ваш код взглянуть?
__________________
Спросишь, дурак на минуту. Если не спросишь, дурак на всю жизнь!

Старый 04.10.2011, 15:58
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 10  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Есть там все http://silin.su/AS3/silin.zip
в папке filters

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

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

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


 


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


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