![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Aug 2011
Сообщений: 52
|
Всем доброго времени суток!
Подскажите пожалуйста новичку! Мне надо сделать так что бы я мог информацию в виде текста помещать в блок ( ну так называемый квадрат просто ) и что бы этот блок раскрывался и складывался показывая тем самым всю и лишь часть информации! Помогите пожалуйста как реализовать сию мысль? Я вообще не имею понятия как это сделать(( Заранее очень признателен. Извиняюсь сразу за некорректность поставленной задачи, я надеюсь более менее все поняли что мне требуется сделать. |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Например, у спрайта есть свойство scrollRect
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 52
|
А можно по подробнее объяснить мне процесс реализации? А то я никак не могу понять как мне заставить такую вещь после клика по ней раздвигаться и сдвигаться соответственно после нажатия на другую...
|
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Так... определитесь, в первом посте был простой хайдер – нажал-открылся, нажал-закрылся.
Сейчас Вы говорите о закрытии при нажатии на ДРУГОЙ блок. А это уже не хайдер, а что-то типа Аккордеона. Уточните ТЗ)) Добавлено через 7 минут Main.as 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; } } } 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); |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 52
|
Мне необходимо что бы именно как аккордеон был, так вы это назвали, то есть в при нажатии на один блок он раскрывается, а потом при нажатии на другой, первый закрывается)
Извините за не правильную формулировку изначальную) Добавлено через 20 минут А и вот еще сама суть проблемы и ради чего я это все спросил в том, что возник вопросик с выводом данных из БД. Сейчас вывод происходит в таблицу.. (DataGrid), а нужно сделать вывод строчный. Это связано с дизайном приложения. 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 код:
И извините за нубский вопрос... но я никак не пойму что именно мне сделать кодом, который вы предоставили =( Объясните пожалуйста( |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Опять не понял(( Может на солнце пятна и телепатические способности мои пофиксились.. Как-то ваш текст трояко можно понять.. могли бы вы сварганить картинку, как примерно эти "строки" должны выглядеть закрытые и раскрытые? Я так понимаю, что "новость" и "информация" это не два-три слова, как это все долно быть размещено в блоке? Не представляю. Изобразите? Хоть в гуглдоках))
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 52
|
![]() Вот я накидал картинку =) Вот что-то такое мне требуется =) Добавлено через 5 минут А вот тут если как должно быть на самом деле, примерно конечно это просто в FS накидал =) ![]() |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Вот пример, проект для FlashDevelop, не знаю каким редактором пользуетесь Вы и сможете ли переделать под Флэш ИДЕ если что.
В локальном плеере свфка (лежит в bin/) скорее всего не запустится, не сможет загрузить xml (имитирует ответ сервера)), если не добавить проект в доверенную директорию или не открыть в ФД. Разбирайтесь, удачи)))
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Aug 2011
Сообщений: 52
|
Вообще все делаю =) Adobe Flash Professional CS5 =)
Спасибо большое =) Буду сейчас пытаться =) |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
Ок. Вот для CS5.
__________________
Reality.getBounds(this); |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:23. |
|
|
« Предыдущая тема | Следующая тема » |
|
|