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

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

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

Регистрация: Aug 2011
Сообщений: 52
По умолчанию Раздвижные блоки

Всем доброго времени суток!
Подскажите пожалуйста новичку!

Мне надо сделать так что бы я мог информацию в виде текста помещать в блок ( ну так называемый квадрат просто ) и что бы этот блок раскрывался и складывался показывая тем самым всю и лишь часть информации!

Помогите пожалуйста как реализовать сию мысль? Я вообще не имею понятия как это сделать((

Заранее очень признателен. Извиняюсь сразу за некорректность поставленной задачи, я надеюсь более менее все поняли что мне требуется сделать.

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Например, у спрайта есть свойство scrollRect
__________________
Reality.getBounds(this);

Старый 02.08.2011, 12:10
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 3  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
А можно по подробнее объяснить мне процесс реализации? А то я никак не могу понять как мне заставить такую вещь после клика по ней раздвигаться и сдвигаться соответственно после нажатия на другую...

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Так... определитесь, в первом посте был простой хайдер – нажал-открылся, нажал-закрылся.
Сейчас Вы говорите о закрытии при нажатии на ДРУГОЙ блок. А это уже не хайдер, а что-то типа Аккордеона. Уточните ТЗ))

Добавлено через 7 минут
Main.as
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
	import flash.text.TextFormat;
	import Hider;
/* * * * * * * * * *
*                  *
*  @author wolsh   *
*                  *
\* * * * * * * * * */
	public class Main extends Sprite 
	{
 
		public function Main():void 
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
		}
 
		private function init(e:Event = null):void 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.align = StageAlign.TOP_LEFT;
            stage.scaleMode = StageScaleMode.NO_SCALE;
			stage.showDefaultContextMenu = false;
			// entry point
			var s:String = "Мне надо сделать так что бы я мог информацию в виде текста помещать в блок ( ну так называемый квадрат просто ) и что бы этот блок раскрывался и складывался показывая тем самым всю и лишь часть информации!";
			var hider1:Hider = new Hider(150, 50, 250, s, new TextFormat("Arial", 12, 0x666666));
			addChild(hider1);
			hider1.x = 100;
			hider1.y = 100;
		}
 
	}
 
}
Hider.as
Код AS3:
package 
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.events.MouseEvent;
	import flash.geom.Rectangle;
	import flash.text.TextField;
	import flash.text.TextFormat;
 
/* * * * * * * * * *
*                  *
*  @author wolsh   *
*                  *
\* * * * * * * * * */ 
	public class Hider extends Sprite
	{
		private var _text		:String;
		private var _format		:TextFormat;
		private var _txf		:TextField;
		private var _width		:Number;
		private var _minHeight	:Number;
		private var _maxHeight	:Number;
		private var _hided		:Boolean = true;
 
		public function Hider(width:Number, minHeight:Number, maxHeight:Number, text:String, format:TextFormat) 
		{
			_maxHeight = maxHeight;
			_minHeight = minHeight;
			_width = width;
			_format = format;
			_text = text;
			if (stage)
			{
				init();
			}
			else 
			{
				addEventListener(Event.ADDED_TO_STAGE, init);
			}
		}
 
		private function init(event:Event = null):void
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			// создаем текстовое поле для контента.
			_txf = new TextField();
			_txf.defaultTextFormat = _format;
			_txf.multiline = true;
			_txf.wordWrap = true;
			_txf.mouseEnabled = false;
			_txf.width = _width - 20;
			_txf.x = 10;
			_txf.htmlText = _text;
			_txf.height = Math.min(_maxHeight, _txf.textHeight + 4);
			addChild(_txf);
			// рисуем фончик, он нужен также для реакции на клик. Можно сделать его прозрачным, задав не 1 а 0 вторым параметром beginFill().
			this.graphics.beginFill(0xEEEEEE, 1);
			this.graphics.drawRect(0, 0, _width, this.height);
			this.scrollRect = new Rectangle(0, 0, _width, _minHeight);
			// начинаем слушать клик
			this.addEventListener(MouseEvent.CLICK, clickHandler);
		}
 
		private function clickHandler(event:MouseEvent):void 
		{
			// меняем режим.
			_hided = !_hided;
			if (_hided)
			{
				// если скрытый - задаем прямоугольник отображения с минимальной высотой, иначе - с максимальной.
				this.scrollRect = new Rectangle(0, 0, _width, _minHeight);
			}
			else this.scrollRect = new Rectangle(0, 0, _width, _maxHeight);
		}
	}
 
}
__________________
Reality.getBounds(this);

Старый 02.08.2011, 13:25
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 5  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Мне необходимо что бы именно как аккордеон был, так вы это назвали, то есть в при нажатии на один блок он раскрывается, а потом при нажатии на другой, первый закрывается)
Извините за не правильную формулировку изначальную)

Добавлено через 20 минут
А и вот еще сама суть проблемы и ради чего я это все спросил в том, что
возник вопросик с выводом данных из БД. Сейчас вывод происходит в таблицу.. (DataGrid), а нужно сделать вывод строчный. Это связано с дизайном приложения.

Код AS3:
private function newslist(e:Event):void
            var b;
            var h=e.target.data;
            h=h.split("_");
            for (var i = 0; i < (h.length-1); i++)          
            {
                b=h[i].split(":");
 
                dp.addItem({pid:b[0], uid:b[1], Name:b[2], News:b[3], Information:b[6] , date:b[4]});
                            }          
 
            list.x=220;
            list.y=125;
            list.resizableColumns=false;
            list.setSize(500,600);          
            list.columns=["Name", "News", "Information","date"];
            list.getColumnAt(3).width=80;
            list.getColumnAt(2).width=50
            list.getColumnAt(1).width=170;
            list.getColumnAt(0).width=120;
            list.dataProvider=dp;
            list.doubleClickEnabled=true;
            list.addEventListener(ListEvent.ITEM_CLICK,goon);
            scene.addChild(list);      
 
        }
Тоесть сейчас вывод таблицей такой |Имя|Новость|Информация|дата|,
а нужно вывести в такой вид
Имя Новость Информация (какая нибудь кнопка ) дата.
По принципу раскрывающегося блока, ну то есть когда блок скрыт видно только треть информации, а при нажатии на него всю.
Ну тоесть свобода размещения и форматирования.
Подскажите пожалуйста.

вот php код:

PHP код:
while ($row mysql_fetch_array($result))
 {
        echo 
$name.":".$date.":".$information.":".$news."_";
 } 
Добавлено через 3 часа 7 минут
И извините за нубский вопрос... но я никак не пойму что именно мне сделать кодом, который вы предоставили =(
Объясните пожалуйста(

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

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

Старый 02.08.2011, 17:15
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 7  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52


Вот я накидал картинку =) Вот что-то такое мне требуется =)

Добавлено через 5 минут
А вот тут если как должно быть на самом деле, примерно конечно это просто в FS накидал =)


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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Вот пример, проект для FlashDevelop, не знаю каким редактором пользуетесь Вы и сможете ли переделать под Флэш ИДЕ если что.
В локальном плеере свфка (лежит в bin/) скорее всего не запустится, не сможет загрузить xml (имитирует ответ сервера)), если не добавить проект в доверенную директорию или не открыть в ФД. Разбирайтесь, удачи)))
Вложения
Тип файла: zip InfoBlockExtendable.zip (21.6 Кб, 57 просмотров)
__________________
Reality.getBounds(this);

Старый 03.08.2011, 11:12
kaploson вне форума Посмотреть профиль Отправить личное сообщение для kaploson Найти все сообщения от kaploson
  № 9  
Ответить с цитированием
kaploson

Регистрация: Aug 2011
Сообщений: 52
Вообще все делаю =) Adobe Flash Professional CS5 =)
Спасибо большое =) Буду сейчас пытаться =)

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Ок. Вот для CS5.
Вложения
Тип файла: zip InfoBlocks.zip (14.5 Кб, 48 просмотров)
__________________
Reality.getBounds(this);

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

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

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


 


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


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