Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Можно ли создавать массив прямо в объявлении переменной класса? (http://www.flasher.ru/forum/showthread.php?t=131946)

Kuruki 31.10.2009 20:57

Можно ли создавать массив прямо в объявлении переменной класса?
 
Раньше всегда так и делал, но сегодня вдруг наткнулся на такое
Код AS1/AS2:

class MyClass
{
    private var items:Array = [];
 
    public function MyClass()
    {
        for (var i = 0; i < 3; i++)
        {
            this.items.push('item');
        }
 
        trace(this.items.length);
    }
}
 
for(var i:Number = 0; i < 2; i++)
{
    var m:MyClass = new MyClass();
}

Выдает
Цитата:

3
6
Стоит перенести создание в конструктор - все ок. С чем это связано?

udaaff 31.10.2009 21:10

Это баг AS2. Инициализировать массивы и объекты нужно в конструкторе. Баг заключается в том, что в данном случае, элементы добавляются в массив прототипа MyClass.

etc 31.10.2009 21:45

Не создавайте массивы вне методов класса.

Kuruki 31.10.2009 22:06

Спасибо за разъяснения! Все дело в лени :)

dimarik 01.11.2009 19:31

Уточню. Создавать вне методов и конструктора в AS2 можно только примитивные типы данных.


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

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