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

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

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

Регистрация: Jan 2008
Сообщений: 669
По умолчанию Можно ли создавать массив прямо в объявлении переменной класса?

Раньше всегда так и делал, но сегодня вдруг наткнулся на такое
Код 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
Стоит перенести создание в конструктор - все ок. С чем это связано?

Старый 31.10.2009, 21:10
udaaff вне форума Посмотреть профиль Отправить личное сообщение для udaaff Найти все сообщения от udaaff
  № 2  
Ответить с цитированием
udaaff
...

модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
Это баг AS2. Инициализировать массивы и объекты нужно в конструкторе. Баг заключается в том, что в данном случае, элементы добавляются в массив прототипа MyClass.

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

Регистрация: Sep 2002
Сообщений: 30,787
Не создавайте массивы вне методов класса.

Старый 31.10.2009, 22:06
Kuruki вне форума Посмотреть профиль Отправить личное сообщение для Kuruki Найти все сообщения от Kuruki
  № 4  
Ответить с цитированием
Kuruki

Регистрация: Jan 2008
Сообщений: 669
Спасибо за разъяснения! Все дело в лени

Старый 01.11.2009, 19:31
dimarik вне форума Посмотреть профиль Отправить личное сообщение для dimarik Найти все сообщения от dimarik
  № 5  
Ответить с цитированием
dimarik
.
 
Аватар для dimarik

модератор форума
Регистрация: Sep 2003
Адрес: Москва
Сообщений: 4,630
Записей в блоге: 20
Уточню. Создавать вне методов и конструктора в AS2 можно только примитивные типы данных.
__________________
Воспитан в TimeZero. Работаю в Mail.ru.

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

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

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


 


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


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