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

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

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

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
По умолчанию работа с XML

Друзья, у меня никак не получается сделать "умную загрузку" с помощью XML. Пытался из разных советов слепить что - то одно, но я плохой программист и ничего не вышло. Поэтому решил сделать все с нуля, ну и конечно надеюсь на вашу поддержку!

В лучшем случае, в конце этой темы у нас должно получиться небольшое приложение, полностью динамично подгружающее в себя информацию с помощью XML.
Как оно должно работать:
На сцене появляются 3 иконки, при клике на определенную иконку, должна подгружаться информация именно этой иконки по которой кликнули. Ну а информация должна заключаться в виде одной картинки и двух текстовых блокав, например, имя и биография.

Не судите строго , совсем недавно начал изучать as3

Добавлено через 2 минуты
а вот и первый вопрос
Код AS3:
package
{
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLRequest;
	import flash.net.URLLoader;
	import flash.net.URLLoaderDataFormat;
	import flash.display.StageAlign;
	import flash.display.StageScaleMode;
 
	public class SimpleUsingXML extends Sprite
	{
		public function SimpleUsingXML():void
		{
			if (stage) init();
			else addEventListener(Event.ADDED_TO_STAGE, init);
			trace("SimpleUsingXML")//выводит
		}
		private function init(e:Event = null):void 
 
		{
			removeEventListener(Event.ADDED_TO_STAGE, init);
			stage.align = StageAlign.TOP_LEFT;
			stage.scaleMode = StageScaleMode.NO_SCALE;
 
			var xmlLoader:URLLoader=new URLLoader();
			xmlLoader.dataFormat = URLLoaderDataFormat.TEXT;
			xmlLoader.addEventListener(Event.COMPLETE, parseXML);
			xmlLoader.load(new URLRequest("photo/userphotos.xml"));
		}
		private function parseXML(event:Event):void
		{
			trace("parseXML")//не выводит
		}
	}
}
значит XML не загрузился?


Последний раз редактировалось Dr_Bra; 24.02.2010 в 19:40.
Старый 24.02.2010, 19:49
metsys вне форума Посмотреть профиль Отправить личное сообщение для metsys Найти все сообщения от metsys
  № 2  
Ответить с цитированием
metsys

Регистрация: Feb 2010
Сообщений: 102
Привет. Вот мой работающий код. Может натолкнёт на мысли. По поводу твоей задачи в принципе представляю как это можно сделать. Сейчас убегаю. Так что если будут вопросы смогу помочь завтра, послезавтра. Сам знакомлюсь с XML сейчас.

Код AS3:
package {
	import flash.display.Loader;
	import flash.display.Sprite;
	import flash.events.Event;
	import flash.net.URLLoader;
	import flash.net.URLRequest;
	import flash.text.TextField;
 
	[SWF(width="1024", height="768", backgroundColor="#ffffff")]
	public class xmlProject extends Sprite
	{
		public var xmlLoader:URLLoader = new URLLoader();
		public var xmlList:XMLList;
		public var xmlData:XML;
 
		public function xmlProject()
		{
			xmlLoader.addEventListener(Event.COMPLETE, showXML);
			xmlLoader.load(new URLRequest("xml_file.xml"));
		}
 
		public function showXML(e:Event):void {
			xmlData=new XML(e.target.data);
			//xmlData.ignoreWhitespace=true;
			xmlList=xmlData.children();
 
			for (var i:int=0; i < xmlList.length(); i++) {
				var picLoader:Loader=new Loader();
				picLoader.load(new URLRequest(xmlList[i].attributes()[1]));
				picLoader.x=20;
				picLoader.y=i*160+20;
				addChild(picLoader);
 
				var stringVar:String=new String;
				var textfieldVar:TextField=new TextField;
				textfieldVar.multiline=true;
				textfieldVar.selectable=true;
				textfieldVar.x=400;
				textfieldVar.y=picLoader.y;
				addChild(textfieldVar);
				stringVar=xmlList[i].children()[2];	//stringVar=xmlList[i].elements("body");
				textfieldVar.text=stringVar;
			}
		}
	}
}
текст XML:

Код:
<?xml version="1.0" encoding="utf-8"?>
<images>

	<img big="data/images/01.jpg" b="data/images/04.jpg">grrr 1
		<title>Картинка 1</title>
		<body>about 1</body>
	</img>

	<img big="data/images/02.jpg" b="data/images/05.jpg">grrr 2
		<title>Картинка 2</title>
		<body>about 2</body>
	</img>

	<img big="data/images/03.jpg" b="data/images/06.jpg">grrr 3
		<title>Картинка 3</title>
		<body>about 3</body>
	</img>

</images>


Последний раз редактировалось wvxvw; 24.02.2010 в 20:28.
Старый 24.02.2010, 19:51
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 3  
Ответить с цитированием
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
Подпишитесь на IOErrorEvent.IO_ERROR и SecurityErrorEvent.SECURITY_ERROR
__________________
тонкий тролль, осеянный благодатью

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

модератор форума
Регистрация: Jan 2006
Адрес: Бердск, НСО
Сообщений: 6,445
А где расположен файл photo/userphotos.xml по отношению к свф?
И перенеси первый трейс в init(), чтобы знать что вообще дошли до загрузки xml ))
__________________
Reality.getBounds(this);

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

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

Старый 25.02.2010, 13:25
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 6  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
спасибо, Wolsh!
На этой основе я пытаюсь построить загрузку разных иконок, для каждой персоны.
Иконки грузятся, только перестает правильно работать событие
Код AS3:
userIcon.addEventListener(MouseEvent.CLICK, onClick);
кликнуть на тексе - работает, на иконку - нет..
мы же и текст и иконку поместили в один контейнер userIcon..
Вложения
Тип файла: zip simpleUsingXML.zip (175.8 Кб, 116 просмотров)


Последний раз редактировалось Dr_Bra; 25.02.2010 в 19:04.
Старый 25.02.2010, 20:09
Dr_Bra вне форума Посмотреть профиль Отправить личное сообщение для Dr_Bra Посетить домашнюю страницу Dr_Bra Найти все сообщения от Dr_Bra
  № 7  
Ответить с цитированием
Dr_Bra
 
Аватар для Dr_Bra

Регистрация: Nov 2008
Адрес: Moscow
Сообщений: 493
Отправить сообщение для Dr_Bra с помощью ICQ
Вот уже более модифицированный код в нашем приложении. Только не получается решить проблему с кликом по иконке. И, вроде, контейнер с карточкой загружается поверх старого, не удаляя предыдущий, это же не правильно, как это поправить, с помощью уровней или есть более разумное решение?
Вложения
Тип файла: zip simpleUsingXML.zip (179.4 Кб, 120 просмотров)

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

Теги
loader as3 , xml , XMLLoader

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

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


 


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


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