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

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

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

Регистрация: Oct 2010
Сообщений: 85
По умолчанию Выравнивание списка элементов по высоте

Есть некий список элементов, при удалении одного из элементов(к примеру с середины), те что ниже должны подтягиваться замещая собой удаленный элемент.
Вроде школьная задача, но я уже позеленел от нее, ничего придумать не могу. По сути принцип работы кода должен быть таким: удаление элемента, вызов цикла, назначение новых координат. Предложите свои варианты, как вам это видится.

Если по тексту не понятно, о чем речь, то вот, что сейчас имеется. http://wonderfl.net/c/n5az

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

блогер
Регистрация: Feb 2008
Адрес: http://playtika.com
Сообщений: 1,119
Записей в блоге: 5
Отправить сообщение для СлаваRa с помощью ICQ Отправить сообщение для СлаваRa с помощью Skype™
думать над вариантами реализации и красотой некогда.
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
 
	/**
	 * @author СлаваRa
	 * @version
	 */
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			super.addEventListener(Event.ADDED_TO_STAGE, this._super_addedToStage);
		}
 
		protected var _squareContainer:Sprite;
		protected var _squares:Array /*of Sprite*/
		protected var _squareNum:uint = 6;
		protected var _squareMarginBottom:uint = 10;
 
		protected function _super_addedToStage(e:Event = null):void 
		{
			super.removeEventListener(Event.ADDED_TO_STAGE, this._super_addedToStage);
 
			this._squareContainer = new Sprite();
			this._squares = [];
 
			var square:Sprite;
			for (var i:uint = uint.MIN_VALUE; i < this._squareNum; i++)
			{
				square = this._createSquare();
				this._squares.push(square);
				square.addEventListener(Event.ADDED, this._alignWithY);
				square.addEventListener(Event.REMOVED, this._alignWithY);
				square.addEventListener(MouseEvent.CLICK, this._square_click);
				this._squareContainer.addChild(square);
			}
 
			super.addChild(this._squareContainer);
		}
 
		protected function _createSquare():Sprite
		{
			var sprite:Sprite = new Sprite();
                        sprite.graphics.beginFill(0x000000)
                        sprite.graphics.drawRect(0,0,90,30)
                        sprite.graphics.endFill();
 
                        return sprite;
		}
 
		protected function _alignWithY(e:Event):void
		{
			for (var i:uint = uint.MIN_VALUE; i < this._squares.length; i++)
			{
				this._squares[i].y = i === 0
						        ? i
						        : this._squares[i - 1].y + this._squares[i - 1].height + this._squareMarginBottom;
			}
		}
 
		protected function _square_click(e:MouseEvent):void 
		{
			var square:Sprite = e.target as Sprite;
			this._squares.splice(this._squares.indexOf(square), 1);
			this._squareContainer.removeChild(square);
		}
 
	}
}
__________________
местонахождение


Последний раз редактировалось СлаваRa; 06.08.2011 в 21:00.
Создать новую тему Ответ Часовой пояс GMT +4, время: 11:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

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

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


 


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


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