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

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

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

Регистрация: Sep 2006
Сообщений: 145
По умолчанию Подвисает FP при обходе XML по e4x

Дано xml документ в 12000 строк и более
Есть флэшка одной из задач которой является обход этого документа.
Обход выполняется несколькими циклами

Код AS3:
var tf:TextField = new TextField();
var idis:Object = new Object(); //имеется некий объект со своими полями. По длине объекта запускаем цикл
for (var i:Number = 0; i < idis.length; i++)
{
	tf.text = "Step " + i + " of " + idis.length; //хотелось бы на этом этапе в текстовом поле увидеть текст
	resumeData(idis[i]);
}
 
function resumeData(idi:Object)
{
	var years:Array = [2009, 2010]
	var indexes:Array = idi.indexes;
	for (var i:Number = 0; i < years.length; i++)
	{
		for (var j:Number = 0; j < indexes.length; j++)
		{
			tf.text = "Обработка данных за " + (years[i]) + "год. Индекс " + indexes[j]; //хотелось бы на этом этапе в текстовом поле увидеть текст
			var riList = _values.xml.*.(@idi == Number(indexes[j]) && @idy == Number(years[i]));
			var r = riList.(@idr == idi.region)[0];
				if (r != undefined)
					{
						//код
					}
		}
	}
}
Комментариями отмечены места где ожидается вывод текста. Вместо этого текст выводится только при завершении всех циклов, если конечно не превышено время ожидания для скрипта. Почему так? И каким образом можно все таки вывести текст? Ставить небольшой дилэй после каждого большого шага?

Старый 01.10.2011, 20:42
-De- вне форума Посмотреть профиль Отправить личное сообщение для -De- Найти все сообщения от -De-
  № 2  
Ответить с цитированием
-De-
 
Аватар для -De-

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
http://help.adobe.com/en_US/as3/mobi...ng_content.pdf
Надо знать то, что в главе "Runtime code execution fundamentals" (она считай первая).
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

Старый 01.10.2011, 20:43
GBee вне форума Посмотреть профиль Отправить личное сообщение для GBee Найти все сообщения от GBee
  № 3  
Ответить с цитированием
GBee
 
Аватар для GBee

Регистрация: Jan 2009
Сообщений: 3,067
Записей в блоге: 3
Отправить сообщение для GBee с помощью Skype™
вы хотите увидеть нечто вроде прогресса?
Замените цикл на enterframe, каждый кадр обрабатывайте пачку данных.
Код AS3:
tf.text +=
Года по другому можно реализовать скорее всего. Простейшая оптимизация для выигрыша в скорости тоже помогут, например запоминать длины массивов в переменных и трогать их.
__________________
Чтобы доказать, что вы не робот, причините вред другому человеку.

Старый 01.10.2011, 21:17
XoJlToH вне форума Посмотреть профиль Отправить личное сообщение для XoJlToH Найти все сообщения от XoJlToH
  № 4  
Ответить с цитированием
XoJlToH
 
Аватар для XoJlToH

Регистрация: Sep 2006
Сообщений: 145
Добился нужного эффекта заменой вызывающего цикла на таймер. Про эластик фрейм в курсе

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

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

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


 


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


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