Раскрывающийся список Spark DropDownList неправильно расположен внутри SWFLoader

Сегодня столкнулся с этой ошибкой:

http://bugs.adobe.com/jira/browse/SDK-26147

Я загружаю приложение другой команды через SWFLoader в свое собственное приложение. По разным причинам я должен использовать флаг loadForCompatibility и установить для него значение true. Я заметил, что ВСЕ экземпляры spark DropDownList в загруженном подприложении неправильно смещают свои выпадающие списки. Поскольку в моем приложении есть заголовок, раскрывающиеся списки смещены по вертикали на высоту заголовка. MX-версии ComboBox в тестовом подприложении не имеют этой проблемы.

Я попытался добавить строку:

-includes=mx.managers.systemClasses.MarshallingSupport

а также

-includes+=mx.managers.systemClasses.MarshallingSupport

к параметрам компилятора моего приложения, но это не имеет никакого эффекта.

Я также заметил, что при попытке написать оператор импорта MarshallingSupport даже не существует. Я использую FlashBuilder 4. Я использую SDK по умолчанию (4.1). Подпрограмма такая же.

Есть ли какой-нибудь обходной путь для этого? Я делаю что-то неправильно? Почему это должно быть? Сказать другой команде переключить все их s:DropDownList на mx:ComboBox будет, по меньшей мере, обременительно. Это также займет очень много времени, поскольку API-интерфейсы разные. Я очень надеюсь, что смогу что-то сделать, чтобы решить эту проблему. Пожалуйста, скажите мне, что я делаю это неправильно.


person jpwrunyan    schedule 11.07.2012    source источник
comment
В качестве обходного пути вы можете попробовать создать собственный скин для DropDownLists, в котором вы компенсируете смещение.   -  person RIAstar    schedule 11.07.2012
comment
Используемая здесь версия Flash Builder не так важна, как используемая версия Flex. Вы также используете Flex 4?   -  person JeffryHouser    schedule 11.07.2012
comment
@www.Flextras.com Вы имеете в виду SDK, верно? SDK установлен на 4.1 (по умолчанию)   -  person jpwrunyan    schedule 12.07.2012
comment
Верный; Я имел в виду SDK... Предложение @RIAStar — лучшее, что я могу придумать.   -  person JeffryHouser    schedule 12.07.2012


Ответы (1)


Итак, одним из вариантов было создать новый DropdownListSkin, который изменил поведение AnchorPopUp. Это было нормальное решение. Но оказалось, что с некоторыми дополнительными трудностями я получил "-includes+=mx.managers.systemClasses.MarshallingSupport", чтобы наконец работать в компиляторе. Я смог подтвердить, включена ли поддержка сортировки, поставив точку останова в строке 1432 MatrixUtil.getConcatenatedMatrixHelper(). Или, как вариант, вы можете проверить, позвонив:

 ApplicationDomain.currentDomain.hasDefinition("mx.managers.systemClasses.MarshallingSupport");

Поэтому, если, как и я, вы считаете, что у вас правильно установлены параметры компилятора, используйте приведенный выше код, чтобы подтвердить, что вы действительно, честно говоря, правы. Пока MatrixUtil может получить доступ к MarshallingSupport, ваши раскрывающиеся списки искр и т. д. будут работать нормально.

Кроме того, мне помогли форумы Adobe: http://forums.adobe.com/thread/1034957< /а>

редактировать: я помечаю это как ответ, поэтому SO перестанет просить меня принять ответ.

person jpwrunyan    schedule 03.08.2012