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

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

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

Регистрация: Dec 2010
Сообщений: 129
Question Обновление List через интервал.

Доброе...
Подскажите как правильно обновлять данные в List (fl.controls.List)?
Ситуация такая парсится XML и вносится в List, но не могу сообразить как вносить динамические изменния.
Например поменялось значение или добавилась строка.

Вот кусок кода с внесением данных в List:
Код AS3:
function updateBals(){
	var result:String = "http://sait.ru/rating.php?rand="+Math.round(Math.random()*uint.MAX_VALUE);
    var myRequest:URLRequest = new URLRequest(result);
    var loader:URLLoader = new URLLoader();
   	var myParams:URLVariables = new URLVariables();
 
    	myRequest.data = myParams;
    	loader.dataFormat = URLLoaderDataFormat.TEXT;
 
    	myRequest.method = URLRequestMethod.POST;
	loader.addEventListener(Event.COMPLETE, insertAdvertisementHandler, false, 0, true);
    	loader.load(myRequest);	
}
 
function insertAdvertisementHandler(event:Event) : void{
	var dataMy = (event.target.data);
	trace(dataMy);	
	var myxml:XML = XML(event.target.data); 
	var nameOrg:String = myxml.user[0].name.text();
	var totalbal:uint = parseInt(myxml.user[0].total.text(),10);
	var myDataProvider:DataProvider = new DataProvider();
 
	myList.y=80;
	myList.alpha=0.7;
	myList.setSize(200,80);
	myList.dataProvider = myDataProvider;
	myList.labelFunction = myLabelFunction;
 
	var productElements:XMLList = myxml.user; 
	var len:int = productElements.length();
	var a:int;
	for (var i:int = 0; i < len; i++) {
	a=i+1;
	myDataProvider.addItem({label:a+". "+productElements[i].name.text(), price:parseInt(productElements[i].total.text(),10)});
	}
	 addChild(myList);
	 myList.rowCount =24;
	}
 
 
function myLabelFunction(item:Object):String {
    	return item.label + " -  (" + item.price.toFixed(0) + ")";
}
Как правильней вносить изменния? Через?:
Код AS3:
myList.drawNow();
Вот так таймер пробовал:
Код AS3:
public var timer : Timer = new Timer (5000);
timer.addEventListener(TimerEvent.TIMER, onTimer);
function onTimer(event:TimerEvent):void{
			removeChild(myList);			
			updateBals();
			//myList.drawNow();
		}
Но тогда происходят "моргания", он же удаляет и заново создает List.
Подскажите пожалуйста, как грамотно сделать.
Спасибо.
__________________
--
Какой бы путь ты не выбрал, лягушка прыгнет врятли

Старый 08.06.2014, 12:10
alexandrratush вне форума Посмотреть профиль Отправить личное сообщение для alexandrratush Найти все сообщения от alexandrratush
  № 2  
Ответить с цитированием
alexandrratush
 
Аватар для alexandrratush

Регистрация: Jul 2013
Адрес: Днепр
Сообщений: 529
Отправить сообщение для alexandrratush с помощью ICQ Отправить сообщение для alexandrratush с помощью Skype™
Цитата:
Например поменялось значение или добавилась строка.
Не совсем понял что нужно сделать. У меня к примеру нужно было сделать так: при нажатии на строчку списка компонент TextInput становиться активным, и при вводе текста он автомат. обновляется в List:
Код AS3:
private function changeNameCategoryHandler(e:Event):void 
{
	if (_listCategory.selectedItem) 
	{
		var index:int = _listCategory.selectedIndex;
		var item:Object = _listCategoryDP.getItemAt(index);
 
		item.label = _textInputNameCategory.text;
		_listCategory.invalidateItem(item);
	}
}

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

Регистрация: Dec 2010
Сообщений: 129
У меня примерно так же...
Суть такая ...
Из базы данных вытаскиваю значение через php, генерю все в xml и из него беру значения в List.
Значение в базе изменились и надо обновить List)
По сути как и у вас)
Спасибо за код, сейчас попробую...

Добавлено через 22 минуты
точней да же так .. мне нужно чтобы через каждые минут 5 шло обновление списка. А список берется из
Код AS3:
var result:String = "http://sait.ru/rating.php?rand="+Math.round(Math.random()*uint.MAX_VALUE);
    var myRequest:URLRequest = new URLRequest(result);
Добавлено через 48 минут
Как изменять ячейки, если например значение ее изменилось в базе... то есть все ячейки на месте. а одно изменило значение...
Чтото я не уллавливаю нить)

Добавлено через 1 час 8 минут
нашел выход, сампротупил.
Код AS3:
addChild(myList);
	 myList.rowCount =24;
Вынес за пределы функции обновления и затем спокойно таймером все обновил.
Спасибо.
__________________
--
Какой бы путь ты не выбрал, лягушка прыгнет врятли


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

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

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


 


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


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