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

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

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

Регистрация: Mar 2006
Адрес: Russia, Kazan
Сообщений: 31
По умолчанию Добавление динамических элементов в dataProvider

Есть исходные данные:
Код:
$name = Array(name1,name2);
$value = Array(value1,value2);
Нужно сделать следующее добавление в массив:
Код:
$dataProvider = Array({$name[i]:$value[i]}); // i=0,1
Чтобы в итоге получить:
Код:
$dataProvider = Array({name1:value1},{name2:value2})

Старый 15.04.2007, 19:38
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 2  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Читайте про метод push у Array.

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

Регистрация: Mar 2006
Адрес: Russia, Kazan
Сообщений: 31
Читали =)) Ругается он:
Код:
for(k=0;k<id.length;k++){
myData.push({id[k]:val[k]})
}

Старый 15.04.2007, 20:01
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 4  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
И правильно делает, внутри push неверный синтаксис. Самостоятельно додумаем?

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

Регистрация: Mar 2006
Адрес: Russia, Kazan
Сообщений: 31
Не получается =(

Старый 15.04.2007, 20:48
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 6  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код:
for(k=0;k<id.length;k++){
myData.push({id:k,val:id[k]});
}
Я думаю, нужно было это.

Да, и надо пользоваться new Array, а не функцией Array, потому как это пережиток прошлого.

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

Регистрация: Mar 2006
Адрес: Russia, Kazan
Сообщений: 31
Хм, не получается использовать myData в виде dataProvider'a =(

Старый 15.04.2007, 21:24
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 8  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
«не получается» — не ответ. Приводим полный код.

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

Регистрация: Mar 2006
Адрес: Russia, Kazan
Сообщений: 31
ActionScript:
Код:
System.useCodepage = true;
var myData:Array = new Array();
var data_xml:XML = new XML();
data_xml.ignoreWhite = true;
data_xml.onLoad = function(success) {
	if (success) {
		//database=>row=>columns:
		for (i=0; i<this.firstChild.childNodes.length; i++) {
			//Row:
			//trace('---'+newline+'Row: '+this.firstChild.childNodes[i].attributes.id)
			for (j=0; j<this.firstChild.childNodes[i].childNodes.length; j++) {
				//id=value:
				id.push(this.firstChild.childNodes[i].childNodes[j].attributes.id);
				val.push(this.firstChild.childNodes[i].childNodes[j].childNodes[0].nodeValue);
			}
		}
		for (k=0; k<j; k++) {
			myData.push({id[k]:val[k]})
		}
		//trace('---'+newline+'Total: '+j+' colums in '+i+' rows');
	} else {
		trace('Error');
	}
};
data_xml.load('database.xml');
my_datagrid.dataProvider = myData;
database.xml:
Код:
<?xml version="1.0" encoding="windows-1251"?>
<database>
	<row id='1'>
		<column id='Login'>DarkWarrior</column>
		<column id='Password'>no_password</column>
		<column id='Info'>no_info</column>
	</row>
	<row id='2'>
		<column id='Login'>Камиль</column>
		<column id='Password'>нет_пароля</column>
		<column id='Info'>нет_информации</column>
	</row>
</database>

Старый 15.04.2007, 21:41
etc вне форума Посмотреть профиль Найти все сообщения от etc
  № 10  
Ответить с цитированием
etc
Et cetera
 
Аватар для etc

Регистрация: Sep 2002
Сообщений: 30,787
Код:
myData = new Array();
data_xml = new XML();
data_xml.ignoreWhite = true;
data_xml.onLoad = function(success) {
	if (success) {
		var nodes = this.firstChild.childNodes;
		for (var i=0; i<nodes.length; i++) {
			var node = nodes[i];
			var subNodes = node.childNodes;
			for (var j=0; j<subNodes.length; j++) {
				var subNode = subNodes[j];
				my_datagrid.addItem({id:subNode.attributes.id,val:subNode.firstChild.nodeValue});
			}
		}
	} else {
		trace('Error');
	}
};
data_xml.load('database.xml');
Как-то так. Правда, яснее?

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

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

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


 


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


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