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

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

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Attention Поиск по XML

Реализовал следующее
Код AS1/AS2:
var myxml:XML = new XML();
myxml.ignoreWhite = true;
var myxml_p:XML = new XML();
myxml_p.ignoreWhite = true;
var myxml_t:XML = new XML();
myxml_t.ignoreWhite = true;
myxml.load('image/abc.xml');
 
poisk.input_txt.onChanged = function() {
	res = false;
	str = poisk.input_txt.text;
	if (str != '') {
		myxml_p.firstChild.removeNode();
		var node:XMLNode = myxml_p.createElement("node");
		myxml_p.appendChild(node);
		for (var i = 0; i<myxml_t.firstChild.childNodes.length; i++) {
			if (myxml_t.firstChild.childNodes[i].hasChildNodes) {
				for (var j = 0; j<myxml_t.firstChild.childNodes[i].childNodes.length; j++) {
					if (str.toLowerCase() == substring(myxml_t.firstChild.childNodes[i].childNodes[j].attributes.label, 0, str.length).toLowerCase()) {
						myxml_p.firstChild.appendChild(myxml_t.firstChild.childNodes[i].childNodes[j].cloneNode(false));
						res = true;
					}
				}
			}
		}
	} else {
		mytree.dataProvider = myxml_t.firstChild;
	}
	if (res) {
		mytree.dataProvider = myxml_p.firstChild;
	}
};
myxml.onLoad = function() {
	mytree.dataProvider = myxml.firstChild;
	myxml_t = myxml;
};
mytree.setStyle("fontSize",14);
mytree.setStyle("backgroundColor",0xAFC6CF);
mytree.setStyle("color",0x510066);
mytree.setStyle("fontFamily","Microsoft Sans Serif");
var treeListener:Object = new Object();
treeListener.change = function(evt_obj:Object) {
	var node = mytree.selectedItem;
mytree.setIsOpen(node, !mytree.getIsOpen(node), true);
if (node.attributes.url) {
		attachMovie("anons","anons",998);
		anons._x = 503;
		anons._y = 156;
 
		anons.mc.loadMovie(node.attributes.url);
 
}};
mytree.addEventListener("change", treeListener);
Это поиск по XML структуре.
С голым кодом, возможно, будет разобраться сложнее, поэтому исходник прилагаю.
Не получается следующее.
Необходимо что бы поиск реализовывался не только по названию предприятия/организации, но и по тем товарам, которые оно производит.
Понятно, что структура XML должна содержать в себе, что-то вроде меток для каждой организации тапа этого:
Код:
<node label="организация1" meta="продажа ёлок, новогодние шары, хлопушки" url=""/>
Но по меткам не получается гулять ибо как распознать что после запятой идет другое значение.
Может это можно как-то иначе реализовать?
Или придется делать что-то типа того?
Код:
<node label="организация1" meta1="продажа ёлок" meta2="новогодние шары" meta3="хлопушки" url=""/>


Последний раз редактировалось KiL33; 25.12.2008 в 21:10.
Старый 25.12.2008, 11:14
scarbo вне форума Посмотреть профиль Отправить личное сообщение для scarbo Найти все сообщения от scarbo
  № 2  
Ответить с цитированием
scarbo
 
Аватар для scarbo

Регистрация: Jun 2008
Адрес: курский вокзал
Сообщений: 1,114
а если indexOf() искать,он вроде должен и через запятую найти
__________________
Я просто добрый шутник.

Старый 25.12.2008, 11:50
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 3  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Цитата:
Сообщение от scarbo Посмотреть сообщение
а если indexOf() искать,он вроде должен и через запятую найти
На примере можешь показать?
Цитата:
Сообщение от user123 Посмотреть сообщение
дык а что тебе мешает раздербанить строку?
Что значит раздербанить?!)))

Старый 25.12.2008, 11:56
user123 вне форума Посмотреть профиль Отправить личное сообщение для user123 Найти все сообщения от user123
  № 4  
Ответить с цитированием
user123

Регистрация: Jun 2008
Сообщений: 28
Цитата:
Сообщение от KiL33 Посмотреть сообщение
Что значит раздербанить?!)))
some_str.split(",");


Последний раз редактировалось user123; 25.12.2008 в 12:03.
Старый 25.12.2008, 11:27
user123 вне форума Посмотреть профиль Отправить личное сообщение для user123 Найти все сообщения от user123
  № 5  
Ответить с цитированием
user123

Регистрация: Jun 2008
Сообщений: 28
дык а что тебе мешает раздербанить строку?

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

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Что-то не понял я, как применить split(","). Отдельно цикл писать.

Старый 25.12.2008, 18:11
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 7  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Выкидываем запятые!
some_str.split(",").join(" ");
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

Регистрация: Aug 2005
Адрес: я из Ленинграда
Сообщений: 1,082
Отправить сообщение для Mnilionic с помощью ICQ
Заменяем условие и цыкл.
в поиск вписываеи "шары" или "Хлопушки"
Код AS1/AS2:
	...
	if (str != '' && str.length > 3) {
		myxml_p.firstChild.removeNode();
		var node:XMLNode = myxml_p.createElement("node");
		myxml_p.appendChild(node);
 
		var node_t = myxml_t.firstChild.firstChild;
		while( node_t ){
 
			if( node_t.hasChildNodes ){
				var sub_node_t = node_t.firstChild;
				while( sub_node_t ){
 
					if ( sub_node_t.attributes.meta != undefined && sub_node_t.attributes.meta.toLowerCase().indexOf(  str.toLowerCase()  ) != -1 ){
						myxml_p.firstChild.appendChild( sub_node_t.cloneNode(false) );
						res = true;
					}
 
					sub_node_t = sub_node_t.nextSibling;
				}
			}
 
			node_t = node_t.nextSibling;
		}
		...
а вообще лучше сделать аттрибут keywords и вбивать туда слова в иминительном падеже через запятую.

Старый 25.12.2008, 21:07
KiL33 вне форума Посмотреть профиль Отправить личное сообщение для KiL33 Найти все сообщения от KiL33
  № 9  
Ответить с цитированием
KiL33
 
Аватар для KiL33

Регистрация: Jul 2007
Адрес: Гражданин Российской Федерации
Сообщений: 1,122
Отправить сообщение для KiL33 с помощью ICQ
Mnilionic, благодарю!
Это настоящий новогодний подарок!

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

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

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


 


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


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