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

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

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

Регистрация: Aug 2006
Адрес: msk
Сообщений: 100
Отправить сообщение для Ulya с помощью ICQ
По умолчанию Проблемы после push объекта в массив

Добрый день.

У меня есть векторный массив
Код:
public var buildings:Vector.<Object>;
Дальше, я создаю объект из ноды xml и добавляю его в массив:

Код:
buildings = new Vector.<Object>();
...
var building:Object = new Object();
building = {sell:Number(element. @ status), address:element, id:element. @ id};
buildings.push(building);
При дальнейшей попытке доступа к полю через массив:

Код AS3:
public function show_buildings():void
		{
			trace("show_buildings ");
			for (var i:int=0; i<buildings.length; i++)
			{
				trace(buildings[i].sell);
			}
		}
Возникает ошибка
Код:
Error #1069: Property sell not found on String and there is no default value.
Почему? Как мне правильно обратиться к полю объекта?
__________________
Plant a tree B4 UR burried undr 1.

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

Регистрация: Sep 2002
Сообщений: 30,787
Значит у вас там не объекты лежат на момент вызова show_buildings.

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

Регистрация: Aug 2006
Адрес: msk
Сообщений: 100
Отправить сообщение для Ulya с помощью ICQ
etc, трейсятся объекты. Перебором всех полей тоже находятся.

Добавлено через 6 минут
Код AS3:
public function show_buildings():void
		{
			trace("show_buildings ");
			for (var i:int=0; i<buildings.length; i++)
			{
 
				trace(buildings[i]);
				//show building
				for (var o:* in buildings[i]) {
					trace(o+" "+buildings[i][o])
				}
			}
		}
Трейс:
Код:
id 1
address Титова, 1
sell 0
...
__________________
Plant a tree B4 UR burried undr 1.

Старый 19.07.2011, 15:54
Котяра вне форума Посмотреть профиль Отправить личное сообщение для Котяра Посетить домашнюю страницу Котяра Найти все сообщения от Котяра
  № 4  
Ответить с цитированием
Котяра
буду краток
 
Аватар для Котяра

модератор форума
Регистрация: Sep 2003
Адрес: Ближайшее Замкадье
Сообщений: 3,110
Записей в блоге: 28
Отправить сообщение для Котяра с помощью ICQ Отправить сообщение для Котяра с помощью Skype™
у меня код работает нормально
Код AS3:
package 
{
	import flash.display.Sprite;
 
	public class Main extends Sprite 
	{
		private var building:Object;
		private var buildings:Vector.<Object>;
 
		public function Main():void 
		{
			building =  {sell:1};
			buildings = new Vector.<Object>();
			buildings.push(building);
			show_buildings();
 
		}
 
		public function show_buildings():void
		{
			trace("show_buildings ");
			for (var i:int=0; i<buildings.length; i++)
			{
				trace(buildings[i].sell);
			}
		}
 
	}
 
}
__________________
Отряд Котовскага


Последний раз редактировалось Котяра; 19.07.2011 в 15:57.
Старый 19.07.2011, 15:55
DaFive вне форума Посмотреть профиль Отправить личное сообщение для DaFive Посетить домашнюю страницу DaFive Найти все сообщения от DaFive
  № 5  
Ответить с цитированием
DaFive
 
Аватар для DaFive

Регистрация: May 2008
Адрес: {0,0}
Сообщений: 754
Записей в блоге: 1
Отправить сообщение для DaFive с помощью ICQ
Значит какой-то объект записывается как String, раз говорит, что у строки свойства sell нету.
Код AS3:
var buildings = new Vector.<Object>();
var building:Object = new Object();
building = {sell:Number(1), address:'asd', id:2};
buildings.push(building);
 
trace(buildings[0].address);
output:asd

работает.
__________________
Кодинг, багинг, алгоритминг. me @

Старый 19.07.2011, 16:04
goodguy вне форума Посмотреть профиль Найти все сообщения от goodguy
  № 6  
Ответить с цитированием
goodguy
Banned
[+1 05.11.11]
[+1 09.08.11]

Регистрация: Jan 2010
Адрес: РФ. Кемеровская область
Сообщений: 3,243
Что передается через Number(element.@ status)?
Там всегда число?
неплохо бы перед этим поставить трейс.
Может туда попадает Infininy или NaN


Последний раз редактировалось goodguy; 19.07.2011 в 16:10.
Старый 19.07.2011, 18:00
Ulya вне форума Посмотреть профиль Отправить личное сообщение для Ulya Найти все сообщения от Ulya
  № 7  
Ответить с цитированием
Ulya

Регистрация: Aug 2006
Адрес: msk
Сообщений: 100
Отправить сообщение для Ulya с помощью ICQ
Разбираюсь, пока не пойму в чем дело у меня. Спасибо.
__________________
Plant a tree B4 UR burried undr 1.

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

блогер
Регистрация: Oct 2005
Адрес: Днепродзержинск - город Брежнева и других логопедов
Сообщений: 1,421
Записей в блоге: 4
Отправить сообщение для -De- с помощью ICQ Отправить сообщение для -De- с помощью Skype™
Есть ещё вариант, что иногда в области видимости строки
Код AS3:
building = {sell:Number(element. @ status), address:element, id:element. @ id};
есть переменная с именем sell 0_0
попробуйте
Код AS3:
building = {"sell":Number(element. @ status), "address":element, "id":element. @ id};
__________________
Бобры отвечают на вопросы не потому, что знают на них ответы; они отвечают потому, что их спрашивают.

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

Регистрация: Aug 2006
Адрес: msk
Сообщений: 100
Отправить сообщение для Ulya с помощью ICQ
нашла проблему. первый элемент массива был не объект, а пустая строка, так как мне нужна была нумерация с единицы. спасибо!
__________________
Plant a tree B4 UR burried undr 1.

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

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

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


 


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


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