Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Загрузка нескольких XML (http://www.flasher.ru/forum/showthread.php?t=119156)

Coinage 13.12.2008 20:44

Загрузка нескольких 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);

Помогите пожалуйста решить этот вопрос. Заранее спасибо!


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

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