Показать сообщение отдельно
Старый 19.09.2001, 20:40
APM вне форума Посмотреть профиль Найти все сообщения от APM
  № 4  
APM

Регистрация: 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, а во вторых – ненадежно – может измениться в новой версии плейера. И вообще мне бы не хотелось услышать о флеш-вирусах и так заказчики пошли перепуганные. Так что "ключики" эти если и есть, то должны быть хорошо спрятаны, а если бы их прятал я - так еще бы и пару сюрпризов приготовил для "шаловливых ручек".