Динамические переменные ActionScript для объекта

Как я могу создать динамическую переменную в ActionScript?

Пример кода:

import windows.nwindow;

for(var num:int = 0; num< 2; num++)
            {
                this["nWin"+num] = new nwindow();
                this["nWin"+num].width = 320;
                this["nWin"+num].height = 200;
                this["nWin"+num].title="window" + num;
                this["nWin"+num].open();
            }

Когда я запускаю приведенный выше код, он отправляет эту ошибку:

Error #1056: Cannot create property nWin0 on MultiWindow.

Итак, как я могу использовать динамическую переменную для этого случая?


person user1995781    schedule 13.12.2013    source источник
comment
Ответ ниже правильный, но мне интересно, в чем преимущество вашей программы для наличия динамического члена по сравнению с элементом в массиве. То есть вместо this[nWin+num] иметь this.myWindows[num]?   -  person Bill Turner    schedule 13.12.2013


Ответы (1)


вы можете использовать словарь для достижения этой цели. например-

        var dict:Dictionary = new Dictionary;
        for(var num:int = 0; num< 2; num++)
        {
            var str:String = "nWin"+num;
            dict[str] = new nwindow();
            dict[str].width = 320;
            dict[str].height = 200;
            dict[str].title="window" + num;
            dict[str].open();
        }
person Akash Bhardwaj    schedule 13.12.2013
comment
В этом случае Объекта было бы достаточно. Словари используются везде, где ключ не является строкой. Однако, если ваш ключ может быть сопоставлен со строками, я думаю, объект должен быть проще. - person Christofer Dutz; 13.12.2013