Ошибка Flex setStyle(«modalTransparencyColor», цвет), проблемы с вариантами шестнадцатеричного цветового кода

#flash #apache-flex

#вспышка #apache-гибкий

Вопрос:

У меня возникла проблема при работе с setStyle() в свойстве modalTransprancyColor. Модуль не запускался с различными вариантами шестнадцатеричного кода, только один, который, кажется, работает, — 0xDDDDDD. В любом другом случае эта строка кода приведет к аварийному завершению работы Flash.

 Application.application.setStyle('modalTransparencyColor', '0xDDDDDD');
        PopUpManager.removePopUp(this);
  

Пробовал: ‘черный’, ‘0xff0000’, ‘0xFF0000’, ‘0x0116FC’

Я использую Flex 3.6v16995 с Flash Builder 4

Комментарии:

1. Я думаю, что это не проблема из setStyle, и 0xDDDDDD — это цвет по умолчанию. куда вы добавляете приведенный выше код? можете ли вы предоставить более подробную информацию о вашей заявке?

2. Во-первых, зачем ты это делаешь Application.application ? Это ужасная практика. Почему вы не используете CSS в основном приложении mxml?

3. Я новичок в работе с flex, и это код от другого разработчика, я работаю над исправлением ошибок. Код находится в файле as, который управляет всплывающим окном, генерирующим поток данных опроса. Этот конкретный код является единственной реализацией в функции surveyPopupClose() @JAX Не могли бы вы объяснить, почему это плохая практика?

Ответ №1:

Из моих тестов следует, что настройка modal-transparency-color CSS в приложении не переходит каскадом во всплывающее окно, и только стиль в самом классе pop up определяет, что используется.

Попробуйте установить стиль из класса, который отображается в виде модального окна.

Пример:

 <!-- componenets/MyPopUp.mxml -->
<s:TitleWindow ... styleName="myColor">
  <fx:Style>
    .myColor {
      modal-transparency-color: '0xff0000';
    }
  </fx:Style>
  ...
</s:TitleWindow>
  

Затем при создании:

 PopUpManager.createPopUp(this,MyPopUp, true); // modal overlay is red