Flex / Parsley - Внутренняя причуда класса с режимом компиляции - PullRequest
0 голосов
/ 26 августа 2010

Это головоломка.

Соответствующая среда: приложение Flex, работающее с петрушкой, которое создается муравьем.

Класс задачи:

package com.foo.bar {
    public class ProblemClass {
        // constructor
        public ProblemClass(enforcer:Enforcer) {}

        public static function build():ProblemClass  {
            // Do some setup
            return new ProblemClass(new Enforcer())
    }
}
// internal private class
class Enforcer() {}

В другом месте, вотдельный класс (который определяется в контексте Parsley):

package com.foo.bar {
    public class ProblemClassBuilder {
        [Factory]
        public function getProblem():ProblemClass {
            return ProblemClass.build();
        }
      }
}

Вот кикер: когда я компилирую это из задачи муравья с debug = "true", он работает нормально.Когда я компилирую его с помощью debug = "false", parsley выдает ошибку при построении контекста:

Ошибка применения [object FactoryMethodDecorator]: Ошибка # 1065: Enforcer переменной не определен.

Никаких других изменений кода, кроме включения / выключения отладки в задаче mxmlc ant.

Кто-нибудь видел подобные проблемы с внутренними классами и режимами компиляции ant debug?

I 'мы смогли решить эту проблему (удалив внутренний класс), но не поняли, почему это не сработало.

Ответы [ 2 ]

1 голос
/ 27 августа 2010

Звучит как ошибка в компиляторе ... Я бы отправил ее на bugs.adobe.com

0 голосов
/ 27 августа 2010

вам разрешено только одно определение класса для каждого файла ActionScript, в противном случае вы должны использовать ключевое слово internal, поэтому оно должно быть private internal class Enforcer()

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