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

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

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

Регистрация: Sep 2012
Сообщений: 15
Attention Помогите разобраться с массивом объектов...голову сломал

Вобщем мне нужно в массиве хранить объекты моего собственного типа LinkedNods , код класса:

Код AS3:
package  {
	import flash.display.MovieClip;
 
	public class LinkedNods {
 
		public var obj1: MovieClip;
		public var obj2: MovieClip;
 
		public function LinkedNods() {
		}
	}
}
В основном скрипте делаю так:

Код AS3:
var nod: LinkedNods = new LinkedNods();
var lnkNods: Array = new Array();
 
nod.obj1 = brPCIcon;
nod.obj2 = brServerIcon;
lnkNods.push(nod);
nod.obj1 = brPCClassIcon;
nod.obj2 = brSwitchIcon;
lnkNods.push(nod);
 
trace(lnkNods[0].obj1+' '+lnkNods[0].obj2);
trace(lnkNods[1].obj1+' '+lnkNods[1].obj2);
На выходе trace выдает что для первого элемента массива, что для второго, одно и тоже:

Код AS3:
[object iPCClass] [object iSwitch]
[object iPCClass] [object iSwitch]
И даже если после добавления элемента в массив изменить переменную nod то все элементы в массиве изменятся, т.е. в массив записывается не значения а сама переменная nod.

Где я ошибаюсь? Подскажите плиз...голову уже сломал....

Старый 28.09.2012, 21:47
Gaen вне форума Посмотреть профиль Отправить личное сообщение для Gaen Найти все сообщения от Gaen
  № 2  
Gaen
strange mood
 
Аватар для Gaen

модератор форума
Регистрация: Jul 2004
Адрес: Питер
Сообщений: 1,653
Записей в блоге: 1
Отправить сообщение для Gaen с помощью ICQ Отправить сообщение для Gaen с помощью Skype™
nod у вас указывает на один и тот же объект, и то, что вы добавляете его в массив, никак на это не влияет. Хотите еще один объект - создайте его.
Код AS3:
var nod: LinkedNods;
var lnkNods: Array = new Array();
 
nod = new LinkedNods(); //раз объект
nod.obj1 = brPCIcon;
nod.obj2 = brServerIcon;
lnkNods.push(nod);
 
nod = new LinkedNods(); //два объект
nod.obj1 = brPCClassIcon;
nod.obj2 = brSwitchIcon;
lnkNods.push(nod);
 
trace(lnkNods[0].obj1+' '+lnkNods[0].obj2);
trace(lnkNods[1].obj1+' '+lnkNods[1].obj2);
ЗЫ: название темы не раскрывает сути вопроса, закрыто.
__________________
тонкий тролль, осеянный благодатью

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

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

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


 


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


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