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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > Advanced

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

Регистрация: Mar 2000
Адрес: Kharkiv, Ukraine, County New Mexica
Сообщений: 129
Отправить сообщение для trY с помощью ICQ
По умолчанию to APM

to APM

Мне понравилось , пошел думать .
А можно дать наводку ( ссылки, откуда начать искать.. и т.д.) на информацию о механизме включения и выполнения ActionScript во Флеше - то самое "hardcoded" i interpreteded ? - это очень интересно (со структурой свф-а чуть-чуть знаком..


to DMCom
Тесты с XML чуть позже выложу, вроде я там в самом деле лажанулся , что правда , не отменяет замерзания с ним..

Старый 19.09.2001, 11:49
DMCom вне форума Посмотреть профиль Отправить личное сообщение для DMCom Найти все сообщения от DMCom
  № 2  
DMCom

Регистрация: Sep 2001
Сообщений: 15
Отправить сообщение для DMCom с помощью ICQ
По умолчанию Re:

Привет, ну вы блин даёте, вот что я думаю:
Первое:
Try - я тут подумал и понял, что мы с тобой говорим о разных вещах:: Вот как бы я сделал вместо той петрушки которую ты заварил
У тебя есть массив MyArray[10000] ... структур
{
a : Int;
b: Int;
c: String;
}

На серваке делаешь <node><a>1</a><b>20</b><c>MyString</c></node>
<node><a>2</a><b>20</b><c>MyString</c></node>
..............500000 раз..............
<node><a>500000</a><b>20</b><c>MyString</c></node>
Грузишь в MyXMLObject = new XML();
делаешь
MyXMLArray = MyXMLObject.childNodes;

теперь
MyXMLArray[1] = "<node><a>1</a><b>20</b><c></c>MyString</node>";
MyXMLArray[2] = "<node><a>2</a><b>20</b><c></c>MyString</node>";
и так далее.. Понимаешь о чем я?
Затем тебе надо получить значение для "a" в 1000 позиции,

A = GetAValue(1000);

function GetAValue(Index) {
return MyXMLArray[Index].firstChild.firstChild.nodeValue;
}
function getBValue (Index) {
..................
}
function GetStringValue(Index) {
.................
}
ни чего не тормозит не залипает и не глючит .................


Именно для таких целей и добавлен объект XML, а не просто для
тупой пересылке данных и затем сливания их в какой нибуть
простой массив........

Старый 19.09.2001, 12:05
DMCom вне форума Посмотреть профиль Отправить личное сообщение для DMCom Найти все сообщения от DMCom
  № 3  
DMCom

Регистрация: Sep 2001
Сообщений: 15
Отправить сообщение для DMCom с помощью ICQ
По умолчанию Re:

Второе: А по поводу того если нужно всё-же зачитать в массив,
то нужно организовать трех кадровый цикл в каком нибуть муве,
1 Frame; Инитим каунтер .
2 Frame: Тело цикла;
3 Frame: Необходимые итерации, проверки .... и переход на Frame 1;

Вот такая вот загогулина получается......... )

Если что не так, то вот моя аська 121790661....

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

Старый 20.09.2001, 12:22
trY вне форума Посмотреть профиль Отправить личное сообщение для trY Посетить домашнюю страницу trY Найти все сообщения от trY
  № 5  
trY

Регистрация: Mar 2000
Адрес: Kharkiv, Ukraine, County New Mexica
Сообщений: 129
Отправить сообщение для trY с помощью ICQ
Всем большое спасибо, , пошел думать

Выкладываю тест с XML данными.

Результат теста: происходит "замораживание" при создании Флешем XML-a - т.е. между командой Load и вызовом функции onLoad ( Правда, времена поменьше будут

1) 100 нодов, в ноде 4 атрибута - 0.450 секунды
2) 200 нодов, в ноде 4 атрибута - 0.80 секунды
3) 400 нодов, в ноде 4 атрибута - 1.60 секунды

Тест прикладываю

Думать пошел
Вложения
Тип файла: zip test_xml.zip (64.6 Кб, 144 просмотров)

Старый 21.09.2001, 15:58
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 6  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
Можно ускорить парсинг ХМЛ во флэш если убить пробелы и переносы, так как флэш понимает их как текстовые ноды и создает элементы, на что естественно тратятся ресурсы.

Ниже сравнение между файлами с пробелами и после их удаления на моей машине.


Тестирование без редактирования файлов.

Start loading; 100 nodes ; Loaded by onLoad function; Delta Time = 445
Start loading; 200 nodes ; Loaded by onLoad function; Delta Time = 768
Start loading; 400 nodes ; Loaded by onLoad function; Delta Time = 1454

После удаления проблелов и переносов:

Start loading; 100 nodes ; Loaded by onLoad function; Delta Time = 273
Start loading; 200 nodes ; Loaded by onLoad function; Delta Time = 451
Start loading; 400 nodes ; Loaded by onLoad function; Delta Time = 848

Старый 21.09.2001, 16:05
john вне форума Посмотреть профиль Отправить личное сообщение для john Посетить домашнюю страницу john Найти все сообщения от john
  № 7  
john
МЕГАФЛЭШЕР

Регистрация: May 1999
Адрес: Россия, Москва
Сообщений: 1,181
Еще есть предположение что можно переписать функцию парсинга в прототипе, по моему я видел подобный механизм на

http://www.layer51.com/proto

утверждалось что работает раз в десять быстрее, или даже больше.

И Дениска на форуме (нужно поискать) давал наводку переделываня парсинга чере ASNative (что не рекомендуется потому что наличие этой функции в шестерке под вопросом)

Я не переделываю парсинг, потому что у меня соообщения не в основном одно-нодовые, ну иногда бывает до пяти.

Старый 21.09.2001, 18:51
APM вне форума Посмотреть профиль Найти все сообщения от APM
  № 8  
APM

Регистрация: Sep 2001
Адрес: Минск, РБ
Сообщений: 106
Thanks John
http://www.flasher.ru/forum/showthre...light=ASNative

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

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

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


 


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


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