Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   Помогите разобраться с массивом объектов...голову сломал (http://www.flasher.ru/forum/showthread.php?t=184871)

Logun 28.09.2012 21:20

Помогите разобраться с массивом объектов...голову сломал
 
Вобщем мне нужно в массиве хранить объекты моего собственного типа 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.

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

Gaen 28.09.2012 21:47

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, время: 02:38.

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