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

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

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

Регистрация: Oct 2008
Сообщений: 11
По умолчанию Загрузка нескольких XML

Здравствуйте! Никак не получается сделать загрузку нескольких XML в пойсковик( Вот ссылка на исходник, вот сам урок)Пробовал уже через листенер,по всякому никак не получается.
Код AS1/AS2:
var myXML:XML = new XML();
myXML.ignoreWhite = true;
myXML.load("Find.xml");
import mx.controls.alert;
myXML.onLoad = function(success) {
if (success) {
populateTable();
} else {
result_text.text = "Данные небыли загружены"+"\r"+"Файл: Find.xml"+"\r"+"небыл найден!"
}
};
////////////////////////////////////// Загрузка XML
 
////////////////////////////////////// Datagrid, функция создания компонента DataGrid
function populateTable() {
var list:Array = new Array(); //создаем массив элементов для dataProvider
for (n=0; n<myXML.firstChild.childNodes.length; n++) { //в цыкле перебираем весь хмл файл по нодам
 //создаем переменну для 1 колонки (ID) DataGrid
 var Id = myXML.firstChild.childNodes[n].firstChild.firstChild.nodeValue;
 //создаем переменну для 2 колонки (Документы) DataGrid
 var doc = myXML.firstChild.childNodes[n].firstChild.nextSibling.firstChild.nodeValue;
 //создаем объект для записи всех разделенных нодов, то есть в компоненте создаем сами колонки и заполняем их
 var myRow:Object = {ID:Id, Документы:doc};
 list.addItem(myRow);
 ///////////////////////////
}
myTable.dataProvider = list; //выводим в компонент ранее созданный и заполненный массив 
myTable.getColumnAt(0).width = 40; //задаем ширину колонки ID
}
////////////////////////////////////// Datagrid
 
 
//////////////////////////////////////////////////////////////////// Поиск
///////////////// Поиск по уникальному номеру (ID)
function search_Id(myText) {
var list:Array = new Array(); // создаем массив
var Criteria = myText; //Создаем переменную
Criteria = Criteria.toLowerCase(); //задаем параметр, что весь текст будет с маленькой буквы
for (n=0; n<myXML.firstChild.childNodes.length; n++) { // перебираем в цыкле ноды
 
 // Это собственно и есть сам поиск indexOf(Criteria) != -1, более подробно написанно в хелпе про indexOf
 if (myXML.firstChild.childNodes[n].firstChild.firstChild.nodeValue.toLowerCase().indexOf(Criteria) != -1) {
  var Id = myXML.firstChild.childNodes[n].firstChild.firstChild.nodeValue;
  var doc = myXML.firstChild.childNodes[n].firstChild.nextSibling.firstChild.nodeValue;
  var myRow:Object = {ID:Id, Документы:doc};
  list.addItem(myRow);
 }
}
result_text.text = "Вы искали: " + mine.text + "   Найдено " + list.length //Выводим в текстовое поле результат поиска
myTable.dataProvider = list;
}
///////////////// Поиск по уникальному номеру (ID)
 
///////////////// Поиск по документу, все тоже самое, за единственным исключением путей до нодов
function searchDoc(myText) {
 
var list:Array = new Array();
var Criteria = myText;
Criteria = Criteria.toLowerCase();
for (n=0; n<myXML.firstChild.childNodes.length; n++) {
 if (myXML.firstChild.childNodes[n].firstChild.nextSibling.firstChild.nodeValue.toLowerCase().indexOf(Criteria) != -1) 
 {
  var Id = myXML.firstChild.childNodes[n].firstChild.firstChild.nodeValue;
  var doc = myXML.firstChild.childNodes[n].firstChild.nextSibling.firstChild.nodeValue;
 
  var myRow:Object = {ID:Id, Документы:doc};
  list.addItem(myRow);
 
 }
}
result_text.text = "Вы искали: " + mine.text + "   Найдено " + list.length //Выводим в текстовое поле результат поиска
myTable.dataProvider = list;
}
///////////////// Поиск по документу
//////////////////////////////////////////////////////////////////// Поиск
 
////////////////////////////////////////// Вывод значения дополнительного нода для привязки действия при клике мышью
function showDetails() {
for (n=0; n<myXML.firstChild.childNodes.length; n++) {
 if (myXML.firstChild.childNodes[n].firstChild.firstChild.nodeValue.indexOf(myTable.selectedItem.ID) != -1) {
 result_text.text = myXML.firstChild.childNodes[n].lastChild.firstChild;
 }
}
}
////////////////////////////////////////// Вывод
 
/////////////////////////////Мышь! Для удобства компонента DataGrid, аттачит мувик с текстовым полем и заносит в него весь текст из выделенной ячейки при наведении мыши, то есть создаем всплывающюю подсказку))
var listListener:Object = new Object();
listListener.itemRollOver = function (evt_obj:Object) {
   if (myTable.getItemAt(evt_obj.index).Документы != undefined) {
  _root.attachMovie ("Podsk", "Podsk",200)
  _root.Podsk._x=_root._xmouse+50;
 if (_root.Podsk._x>330){
  _root.Podsk._x=_root._xmouse-250;
  }
  _root.Podsk._y=_root._ymouse+10;
 
  _root.Podsk._alpha=100;
  _root.Podsk.Podsk_text.text= myTable.getItemAt(evt_obj.index).Документы;
 }
 
};
 
myTable.addEventListener("itemRollOver", listListener);
 
 
 
var listListener:Object = new Object();
 listListener.itemRollOut = function (evt_obj:Object) {
   removeMovieClip(_root.Podsk);
 
};
myTable.addEventListener("itemRollOut", listListener);
/////////////////////////////Мышь
 
/////////////////////////////////////// Кнопки
import mx.controls.RadioButton; //компонет RadioButton
rb_id.selected = true; //Обозначаем который будет выделен по умолчанию
 
/////////////////////////////////////Функция нажатия кнопки "Искать"
searchDB.onRelease = function() {
if (rb_id.selected == true) { //Проверяем если выделен 1 компонент то запускаем функцию search_Id(mine.text), см. выше
 search_Id(mine.text);
} else { //Проверяем если 1 компонент не выделен то запускаем функцию searchDoc(mine.text), см. выше
 searchDoc(mine.text);
}
 
}
Selection.setFocus(mine); //Задаем фокус текстовому полю mine для ввода слов поиска
 
 
 
////////////////////////////////////////////////Действие при клике мышью
var DBdisplay = new Object();
DBdisplay.change = function(eventObject) {
showDetails(); //При клике запускаем функцию showDetails(), см. выше
};
myTable.addEventListener("change", DBdisplay);
Помогите пожалуйста решить этот вопрос. Заранее спасибо!


Последний раз редактировалось Coinage; 14.12.2008 в 11:00.
Создать новую тему   Часовой пояс GMT +4, время: 21:06.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

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

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


 


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


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