Ошибка «Доступ к неопределенному свойству» в статическом инициализаторе - PullRequest
0 голосов
/ 16 марта 2011

Я хочу инициализировать два статических ArrayList объекта в статическом инициализаторе ActionScript.

Я написал этот код:

import mx.collections.ArrayList;

public class Problem{

    [Bindable] private static var levelNumbers:ArrayList;
    [Bindable] private static var speedNumbers:ArrayList;

    {
        for (var loopInt:int = 1; loopInt<901; loopInt++){
            levelNumbers.addItem(loopInt);
            speedNumbers.addItem(loopInt);
        }
    }

    //...
}

Но код не будет компилироватьсяЯ получаю эту ошибку в трех строках цикла for:

1120 : Access of undefined property loopInt

Почему это так?Я просто определил переменную как обычно!

Ответы [ 2 ]

4 голосов
/ 16 марта 2011

Проблема в действительности заключается в локальной переменной loopInt в вашем коде. При использовании статических инициализаторов нельзя использовать this, имя класса или локальные переменные. Первые два, вероятно, потому, что класс еще не существует полностью, в то время как последний, в котором я не уверен (возможно, нет области действия?).

Чтобы все заработало, извлеките цикл в функцию. Как это:

{
    _init();
}

private static function _init():void
{
    for (var loopInt:int = 1; loopInt<901; loopInt++){
        levelNumbers.addItem(loopInt);
        speedNumbers.addItem(loopInt);
    }
}

и должно работать

0 голосов
/ 16 марта 2011

Это потому, что в Flex нет ArrayList. Вы имеете в виду ArrayCollection. Этот код ниже должен работать нормально.

публичный класс Задача {
[Bindable] приватная статическая переменная levelNumbers: ArrayCollection;
[Bindable] приватная статическая переменная speedNumbers: ArrayCollection;
{trace ("1" + getTimer ());
for (var loopInt: int = 1; loopInt <901; loopInt ++) {<br> levelNumbers.addItem (loopInt);
speedNumbers.addItem (loopInt); } * +1010 * trace ("2" + getTimer () + "\ n \ n"); } // ...}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...