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

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

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

Регистрация: Apr 2008
Сообщений: 81
По умолчанию ComboBox && XML

Делал делал и не чего не получилось.
ХМЛ
Код:
<?xml version="1.0" ?>
<CATALOG>
	<OBJECT id="0001" com="1" price="10000" data="01.02.2009" video="videoxml.mp3">
		<LOCATION street="Rekordnaya" district="Malina" />
		<FLOOR>
			<FLOORS state="5" />
			<ALL state="10" />
		</FLOOR>
		<PLANNING>
			<COM1 size="30" foto="imgID0001COM1" />
			<KITCHEN size="20" foto="" />
			<INFO>tualet - 10</INFO>
			<INFO>vannaya - 10</INFO>
		</PLANNING>
		<REPAIR state="evro">
			<INFO>lya lya topolya</INFO>
			<INFO>lya lya topolya2</INFO>
		</REPAIR>
		<DESCRIPTION>
			<GAZ state="gorod" />
			<INTERNET state="TENET" />
			<INFO>mebel</INFO>
			<INFO>pol</INFO>
			<INF1O>stenu</INF1O>
		</DESCRIPTION>
		<DESCRIPTION_2>
			<LIFT state="good"/>
			<DOMOFON state="yes" />
			<VID state="detskiy sad" />
			<INFO>marazin</INFO>
		</DESCRIPTION_2>
		<MINUS>
			<INFO>NO metro</INFO>
		</MINUS>
		<WHOSE name="Denis">
			<TEL name="DENIS" tel="80672947321" />
		</WHOSE>
	</OBJECT>
Код:
Код AS3:
function CreateComboBox(myXML:XML):void 
{
	var dpcb:DataProvider = new DataProvider();
	var cb:ComboBox = new ComboBox();
	cb.dataProvider = dpcb;
	cb.move(100,100);
	cb.addEventListener(Event.CHANGE, Selected);   
	addChild(cb);
 
	var object2:XMLList = myXML.OBJECT[0].children(); 
 
 
	for each (var item:XML in object2) 
	{
		trace(item.name());
		dpcb.addItem( { label: item.name() } );
		//trace("att "+item.attributes().length());
		for(var j1:int;j1<item.attributes().length();j1++)
		{
			//trace(item.attributes()[j].name());
			dpcb.addItem( { label: item.attributes()[j1].name() } );
		}
		trace("child "+item.children().length());
		for(var j2:int;j2<item.children().length();j2++)
		{
			trace(" hasSi "+item.children()[j2].children().hasSimpleContent());
			if(item.children()[j2].children().length() > 0)
				dpcb.addItem( { label: item.children()[j2] } );
						else(item.children()[j2].children().hasSimpleContent() == true )
				dpcb.addItem( { label: item.children()[j2].attributes().name() } );
		}
	}
}
Должно вывести
Всех детей(если само закрывающейся то атрибуты(имена)) и всех детей детей, если есть само закрывающейся дети то и их тоже теги.
у меня вылазит всякий бред в начале вроде нормально а потом тар тарары

Старый 05.06.2009, 15:58
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 2  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Лучше напишите, как должен выглядеть результат после фильтрации... в коде больше 50% лишнего, и не понятно, что он должен делать.
hasSimpleContent - метод XML, а не XMLList... Да... и else это не функция...
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 05.06.2009 в 16:13.
Старый 05.06.2009, 16:13
DEN123 вне форума Посмотреть профиль Отправить личное сообщение для DEN123 Найти все сообщения от DEN123
  № 3  
Ответить с цитированием
DEN123

Регистрация: Apr 2008
Сообщений: 81
LOCATION
street
district
FLOOR
state
state
PLANNIN
COM1 <KITCHEN ="20" ="" />
size
foto
KITCHEN
size
foto
INFO
REPAIR
state
INFO
state
state
INTERNET
INFO

и так далее. ещё хотелось бы что бы ДЕТИ(первые)
были не активны. ну нельзя было на них нажать и они были другого цвета

Старый 05.06.2009, 16:58
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 4  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Код AS3:
import fl.data.DataProvider;
import fl.controls.ComboBox;
 
var xml:XML =
<CATALOG>
	<OBJECT id="0001" com="1" price="10000" data="01.02.2009" video="videoxml.mp3">
		<LOCATION street="Rekordnaya" district="Malina" />
		<FLOOR>
			<FLOORS state="5" />
			<ALL state="10" />
		</FLOOR>
		<PLANNING>
			<COM1 size="30" foto="imgID0001COM1" />
			<KITCHEN size="20" foto="" />
			<INFO>tualet - 10</INFO>
			<INFO>vannaya - 10</INFO>
		</PLANNING>
		<REPAIR state="evro">
			<INFO>lya lya topolya</INFO>
			<INFO>lya lya topolya2</INFO>
		</REPAIR>
		<DESCRIPTION>
			<GAZ state="gorod" />
			<INTERNET state="TENET" />
			<INFO>mebel</INFO>
			<INFO>pol</INFO>
			<INF1O>stenu</INF1O>
		</DESCRIPTION>
		<DESCRIPTION_2>
			<LIFT state="good"/>
			<DOMOFON state="yes" />
			<VID state="detskiy sad" />
			<INFO>marazin</INFO>
		</DESCRIPTION_2>
		<MINUS>
			<INFO>NO metro</INFO>
		</MINUS>
		<WHOSE name="Denis">
			<TEL name="DENIS" tel="80672947321" />
		</WHOSE>
	</OBJECT>
</CATALOG>;
 
function createComboBox(myXML:XML):void 
{
	var dpcb:DataProvider = new DataProvider();
	var cb:ComboBox = new ComboBox();
	cb.dataProvider = dpcb;
	cb.move(100, 100);
	//cb.addEventListener(Event.CHANGE, combo_changeHandler);   
	addChild(cb);
 
	var items:XMLList = new XMLList(); 
	myXML.OBJECT[0].*.((items += XML(name())) && 
					(attributes().length() ? !(attributes().(items += XML(name()))) : true) && 
					(children().length() ? 
					children().(attributes().length() ? 
					((items += XML(name())) && attributes().(items += XML(name()))) :
					(items += XML(name()))) : true));
	trace(items.toXMLString()); 
}
 
createComboBox(xml);
/*
LOCATION
street
district
FLOOR
FLOORS
state
ALL
state
PLANNING
COM1
size
foto
KITCHEN
size
foto
INFO
INFO
REPAIR
state
DESCRIPTION
GAZ
state
INTERNET
state
INFO
INFO
INF1O
DESCRIPTION_2
LIFT
state
DOMOFON
state
VID
state
INFO
MINUS
INFO
WHOSE
name
*/
Но я не вижу никакой логоки / связи в том:
почему FLOORS не должен выводится, а COM1 должен. Я посчитал, что это ваша ошибка копи-паста...
__________________
Hell is the possibility of sanity

Старый 05.06.2009, 19:00
DEN123 вне форума Посмотреть профиль Отправить личное сообщение для DEN123 Найти все сообщения от DEN123
  № 5  
Ответить с цитированием
DEN123

Регистрация: Apr 2008
Сообщений: 81
хорошо. только мне хотелось бы что бы там где самозакрывающейся, то только атрибуты.
и подскажите как мне организовать, вот я хочу что бы это было русскими буквами но теги в ХМЛ русскими делать не хочу, как мне быть?

Старый 06.06.2009, 02:17
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Просто напишите исходя из данного XML какой должен получится в итоге список... то что вы написали до этого ведет себя не последовательно:
т.е. либо после FLOOR не хватает FLOORS, либо после PLANNING не должно быть KITCHEN.
А буквы пишите какие хотите. Главное чтобы XML был в кодировке UTF-8.
__________________
Hell is the possibility of sanity

Старый 06.06.2009, 02:22
DEN123 вне форума Посмотреть профиль Отправить личное сообщение для DEN123 Найти все сообщения от DEN123
  № 7  
Ответить с цитированием
DEN123

Регистрация: Apr 2008
Сообщений: 81
я просто хочу что бы значение оставалось , а имя было русское просто я на разных языках хочу сделать приложение.

да там в последовательности что то напутал. просто там где само закрывающеся не надо показывать НАМЕ а только теги

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

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Ну, не знаю, попробую еще раз:
Пишите том языке, на каком хотите (какой хотите включает так же и русский язык. т.е. если вы хотите писать по-русски, то вы можете это сделать) - главное, сохраните XML файл в кодировке UTF-8.

тег == <foo/>
что такое HAME - я не знаю... Попробуйте сфрормулировать задачу так, чтобы кто-то кроме вас смог понять, чего вы хотите. Пока что вас непонятно
__________________
Hell is the possibility of sanity

Старый 06.06.2009, 02:35
DEN123 вне форума Посмотреть профиль Отправить личное сообщение для DEN123 Найти все сообщения от DEN123
  № 9  
Ответить с цитированием
DEN123

Регистрация: Apr 2008
Сообщений: 81
Из фрагмента:
<PLANNING>
<COM1 size="30" foto="imgID0001COM1" />

должно получится
PLANNING
size
foto

ах, да как в комбоБохе делать значение, которое не видно, но будет связано с тем которые показывается пользователю к примеру:
пользователь видет:
size
state
а когда выберается, то передается 01 или 02 ..

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

Теги
combobox , xml
Опции темы
Опции просмотра

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

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


 


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


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