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

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

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

Регистрация: Jun 2010
Сообщений: 13
По умолчанию формирование ссылки по данным из xml

Доброго дня, добрые люди. Подскажите, пожалуйста.
есть 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>

Как должен выглядеть код, если из этого нужно сделать список книг, где каждое имя являлось бы внешней ссылкой.

Заранее благодарен.

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

блогер
Регистрация: Mar 2008
Адрес: РФ, Санкт-Петербург
Сообщений: 2,272
Записей в блоге: 5
Отправить сообщение для gloomyBrain с помощью ICQ Отправить сообщение для gloomyBrain с помощью Skype™
Для начала можно сделать вот такой XML
Цитата:
<?xml version="1.0" encoding="utf-8"?>
<books>
<book name="Книга 1" url="book1.html">
<book name="Книга 2" url="book2.html">
</books>
А затем распарстить вот так
Код AS3:
var mainXML:XML = ...; // тут, например, URLLoader.data
 
for each(var currentBook:XML in mainXML) {
 
var name:String = currentBool.@name;
var url:String = currentBook.@url;
 
}
ну а дальше используем полученные значения name и url как хочется
__________________
...вселенская грусть

Старый 30.06.2010, 13:43
manzhos вне форума Посмотреть профиль Отправить личное сообщение для manzhos Найти все сообщения от manzhos
  № 3  
Ответить с цитированием
manzhos

Регистрация: Jun 2010
Сообщений: 13
а можно пример как в динамичное поле все это засунуть? (как для дураков - что-то я совсем запутался )

Старый 30.06.2010, 14:32
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 4  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
В TextField? Тогда в цикле у gloomyBrain приписываем следующее:
Код AS3:
memo.appendText(name + ": " + url + "\n");
__________________
тут я

Старый 30.06.2010, 14:57
manzhos вне форума Посмотреть профиль Отправить личное сообщение для manzhos Найти все сообщения от manzhos
  № 5  
Ответить с цитированием
manzhos

Регистрация: Jun 2010
Сообщений: 13
Код AS3:
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"); //это мы подготовили данные для текстового поля
}
я правильно понял? а как связать с конкретным полем данные?

Старый 30.06.2010, 14:59
КорДум вне форума Посмотреть профиль Отправить личное сообщение для КорДум Найти все сообщения от КорДум
  № 6  
Ответить с цитированием
КорДум
 
Аватар для КорДум

блогер
Регистрация: Jan 2008
Адрес: syktyvkar
Сообщений: 3,803
Записей в блоге: 10
Цитата:
//это подключили xml
Загрузили
Цитата:
//это мы подготовили данные для текстового поля
Нет, сразу по мере считывания поместили информацию в поле
__________________
тут я

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

Регистрация: Jun 2010
Сообщений: 13
а нет ли какого урока на эту тему. поподробнее и с примером желательно?

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
Код AS3:
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));
		}
	}
}
books.xml
Код:
<?xml version="1.0" encoding="utf-8" ?>
<books>
<book>
	<bookname>Книга 1</bookname>
	<bookurl>book1.html</bookurl>
</book>
<book>
	<bookname>Книга 2</bookname>
	<bookurl>book2.html</bookurl>
</book>
<book>
	<bookname>Книга 3</bookname>
	<bookurl>book3.html</bookurl>
</book>
</books>
__________________
Reality.getBounds(this);

Старый 30.06.2010, 19:30
manzhos вне форума Посмотреть профиль Отправить личное сообщение для manzhos Найти все сообщения от manzhos
  № 9  
Ответить с цитированием
manzhos

Регистрация: Jun 2010
Сообщений: 13
Суперспасибо. Все работает. Разобрался.

Добавлено через 25 часов 15 минут
Новая проблема - не могу организовать scrollBar для этого дела. не подскажете ли урок/обсуждение на эту тему (именно когда текстовое поле создается actionscript)

Добавлено через 38 часов 18 минут
в общем-то наверное кривизна еще та, но выкрутился - сделал два поля и назначил на них прокрутки:

Код AS3:
 
			//Создаем поля для скроллинга
			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);
Добавлено через 38 часов 29 минут
только курсор текстовый - некрасиво

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

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

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


 


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


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