2010-08-26 1 views
0

Это головоломка.Flex/Parsley - Внутренний класс quirk с компилируемым режимом

Релевантная окружающая среда: приложение 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() {} 

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

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

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

Ошибка применения [объект FactoryMethodDecorator]: Error # 1065: Переменная Enforcer не определена.

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

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

Я смог исправить проблему (удалив внутренний класс), но не понимаю, почему это не сработало в первую очередь.

ответ

-2

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

+0

Извините, но это неверно. В actionscript нет модификатора класса private. (http://bit.ly/9hvf5h) Кроме того, вы можете объявить более одного класса в файле ActionScript, но последующие классы привязаны к области по умолчанию исходного класса - то есть, доступны только для первого класса , Добавление внутреннего выражения в это объявление класса не имеет никакого эффекта. Это общий шаблон для реализации Singleton/Private classes в AS. –

 Смежные вопросы

  • Нет связанных вопросов^_^