![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 13
|
Доброго дня, добрые люди. Подскажите, пожалуйста.
есть xml вида: <?xml version="1.0" encoding="utf-8"?> <book> <bookname>Книга 1</bookname> <bookurl>book1.html</bookurl> </book> <book> <bookname>книга 2</bookname> <bookurl>book2.html</bookurl> </book> Как должен выглядеть код, если из этого нужно сделать список книг, где каждое имя являлось бы внешней ссылкой. Заранее благодарен. |
|
|||||
|
Для начала можно сделать вот такой XML
Цитата:
ну а дальше используем полученные значения name и url как хочется
__________________
...вселенская грусть |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 13
|
а можно пример как в динамичное поле все это засунуть? (как для дураков - что-то я совсем запутался
) |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 13
|
var mainXML:XML = URLLoader.data("xml/book.xml")); //это подключили xml for each(var currentBook:XML in mainXML) { //это мы обработали записи из xml var name:String = currentBook.@name; var url:String = currentBook.@url; memo.appendText(name + ": " + url + "\n"); //это мы подготовили данные для текстового поля } |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 13
|
а нет ли какого урока на эту тему. поподробнее и с примером желательно? |
|
|||||
|
Нуб нубам
модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
|
package { import flash.display.Sprite; import flash.events.Event; import flash.display.StageAlign; import flash.display.StageScaleMode; import flash.events.TextEvent; import flash.net.navigateToURL; import flash.net.URLLoader; import flash.net.URLLoaderDataFormat; import flash.net.URLRequest; import flash.text.TextField; /* * * * * * * * * * * * * @author wolsh * * * \* * * * * * * * * */ public class Main extends Sprite { private var _txt:TextField; private var _xml:XML; 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; // Загружаем XML var loader:URLLoader = new URLLoader(); loader.dataFormat = URLLoaderDataFormat.TEXT; loader.addEventListener(Event.COMPLETE, onXMLLoaded); loader.load(new URLRequest("books.xml")); } private function onXMLLoaded(event:Event):void { // Получаем XML из загруженных данных _xml = XML(event.target.data); // получаем XMLList - список книг var books:XMLList = _xml..book; // Создаем текстовое поле для вывода _txt = new TextField(); addChild(_txt); _txt.multiline = true; _txt.textColor = 0x0000FF; _txt.x = 50, _txt.y = 50; // Подписываемся на событие нажатия на ссылки _txt.addEventListener(TextEvent.LINK, onLink); // Формируем html-строку для вывода var bookString:String = ""; for (var i:uint = 0; i < books.length(); i++) { var url:String = books[i].bookurl.text(); var name:String = books[i].bookname.text(); bookString += "<u><a href='event:" + url + "'>" + name + "</a></u><br>"; } _txt.htmlText = bookString; } private function onLink(event:TextEvent):void { // переходим на переданный адрес URL navigateToURL(new URLRequest(event.text)); } } }
__________________
Reality.getBounds(this); |
|
|||||
|
Регистрация: Jun 2010
Сообщений: 13
|
Суперспасибо. Все работает. Разобрался.
![]() Добавлено через 25 часов 15 минут Новая проблема - не могу организовать scrollBar для этого дела. не подскажете ли урок/обсуждение на эту тему (именно когда текстовое поле создается actionscript)Добавлено через 38 часов 18 минут в общем-то наверное кривизна еще та, но выкрутился - сделал два поля и назначил на них прокрутки: //Создаем поля для скроллинга tUp = new TextField(); addChild(tUp); tUp.x = 480, tUp.y = 45; tUp.height = 20; tUp.width = 11; tUp.wordWrap = true; tUp.background = true; tUp.textColor = 0xFFFFFF; tUp.backgroundColor = 0xf59505; tDown = new TextField(); addChild(tDown); tDown.x = 480, tDown.y = 355; tDown.height = 20; tDown.width = 11; tDown.wordWrap = true; tDown.background = true; tDown.textColor = 0xFFFFFF; tDown.backgroundColor = 0xf59505; tDown.editable = false; // Подписываемся на событие нажатия на поле tUp.addEventListener(MouseEvent.MOUSE_UP, mouseUpScroll); tDown.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownScroll); только курсор текстовый - некрасиво |
![]() |
![]() |
Часовой пояс GMT +4, время: 08:34. |
|
|
« Предыдущая тема | Следующая тема » |
|
|