![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
|
|||||
|
Регистрация: Sep 2001
Адрес: Минск, РБ
Сообщений: 106
|
To DMCom
Спасибо DMCom – ты безусловно прав. XML object во Flash5 реализован просто замечательно, только сейчас у меня дошли руки с ним разобраться. (Первоначальное знакомство с его описанием в документации как-то не вдохновило). Зато какое удовольствие я получил сейчас после длительного общения со всякими SAX и DOM парсерами, как не хватает в Sunовских пакетах чего-то похожевого – простого, удобного и удивительно быстрого. Еще раз спасибо - теперь и я буду регулярно хоронить LoadVariables. А если Macromedia также реализует SVG object – наступит благодать неописуемая… To trY Предлагаю тебе попробовать вот этот фрагмент кода – надеюсь результат тебе понравиться. (Данные (xmldata.xxx) подготовь как советовал DMCom) Я во всяком случае для себя определенные выводы сделал. Можем переходить к следующим проблемам. on ( release ) { //mcSplit.loadVariables( "load1.txt", "POST" ); function getAValue(index) { //trace(_root.MyXMLArray[index].firstChild) //try it for better understanding XML object return _root.MyXMLArray[index].firstChild.firstChild.nodeValue } function getBValue(index) { //trace(_root.MyXMLArray[index].childNodes) //try it for better understanding XML object return _root.MyXMLArray[index].childNodes[1].firstChild.nodeValue } function getCValue(index) { //trace(_root.MyXMLArray[index].childNodes[2].firstChild) //try it for understanding XML object return _root.MyXMLArray[index].childNodes[2].firstChild.nodeValue } MyXMLObject = new XML() MyXMLObject.onLoad = function (success) { if (success) { var iTimer = getTimer() _root.MyXMLArray = this.childNodes var timeSplit = (getTimer() - iTimer) / 1000 var allTime = (getTimer() - startTime) / 1000 iTimer = getTimer() txResult = "last record:" + "\na = " + getAValue(_root.MyXMLArray.length - 1) + "\nb = " + getBValue(_root.MyXMLArray.length - 1) + "\nc = " + getCValue(_root.MyXMLArray.length - 1) var readTime = (getTimer() - iTimer) / 1000 _root.txSplit = "xml load " + _root.MyXMLArray.length + " xml records" + "\nsplit time: " + timeSplit + "\nall time: " + allTime + "\n" + txResult + "\nread time: " + readTime //trace(MyXMLArray) //try it for better understanding XML object } else { _root.txSplit = "ERROR!" } } startTime = getTimer() MyXMLObject.load("xmldata.xxx") } P.S. Выполнение задачи кусками все-таки советую взять на заметку - при серьезной обработке текста (и не только) очень часто приходится сталкиваться с "тормозами". А во Flash такое “выполнения по частям” очень удобно делать. P.P.S. Я бы не советовал искать "ключики" к hardcoded функциям (фактически ассемблерные вставки в плейер)– во первых это нарушает модель защиты Flash, а во вторых – ненадежно – может измениться в новой версии плейера. И вообще мне бы не хотелось услышать о флеш-вирусах и так заказчики пошли перепуганные. Так что "ключики" эти если и есть, то должны быть хорошо спрятаны, а если бы их прятал я - так еще бы и пару сюрпризов приготовил для "шаловливых ручек". |
![]() |
Часовой пояс GMT +4, время: 12:31. |
|
|
« Предыдущая тема | Следующая тема » |
|
|