Ошибка декларации заказа Flex - PullRequest
1 голос
/ 11 февраля 2011

В Flex вы можете использовать тэги декларации для элементов, не относящихся к пользовательскому интерфейсу.

Проблема : Порядок классов внутри Декларации сортируется по возрастанию или что-то в этом роде ...

Это означает, что в этом примере AClass будет создан перед BClass:

<fx:Declarations>
    <local:AClass />
    <local:BClass />
</fx:Declarations>

Но в следующем примере AClass все еще будет создаваться перед BClass, даже если BClass является первым.Это неожиданное поведение, потому что AClass может зависеть от BClass, но сначала будет создан экземпляр, даже если это происходит позже в порядке объявления.

<fx:Declarations>
    <local:BClass />
    <local:AClass />
</fx:Declarations>

AClass

public class AClass
{
    public function AClass()
    {
        var _instance:Object = BClass.instance;
        trace("AClass " + _instance);
    }   
}

И BClass

public class BClass
{   
    private static var _instance:Object;
    public function BClass()
    {
        _instance = new Object();
        trace("BClass " + _instance);
    }

    public static function get instance():Object{
        return _instance;
    }
}

Я сумасшедший?

1 Ответ

1 голос
/ 11 февраля 2011

Я только что провел быстрый тест, проверив сгенерированный скрипт действий (используйте флаг -keep в качестве дополнительного аргумента компилятора), и порядок объявления, кажется, сохраняется правильно.

Вы уверены, что сделали чистуюкомпилировать после изменения порядка объектов?

...