Flex 4 изменить значение части кожи - PullRequest
0 голосов
/ 24 мая 2011

Здравствуйте. Я хотел бы изменить видимость определенной части скина во время выполнения, но я не знаю, как его достичь.

Ответы [ 2 ]

2 голосов
/ 24 мая 2011

Что вы подразумеваете под "достичь"?

И класс компонента, и класс скина имеют ссылку на часть скина, используя имя этого компонента. Как я обычно прячу часть кожи во время выполнения, использует этот процесс:

1) Создать новое состояние кожи; что-то вроде "skinPartHidden"

2) в классе компонентов; создать свойство skinPartVisible. Когда значение свойства изменяется; вызовите метод invalidateSkinState (). Это приведет к запуску getCurrentSkinState () во время следующего события рендеринга.

3) В методе getCurrentSkinState (); используйте значение этого свойства, чтобы установить состояние обложки в новое состояние обложки skinPartHidden. Что-то вроде его:

if(skinPartVisible == false){
 return "skinPartHidden";
}

4) В классе кожи; переключение видимости части обложки на основе состояния обложки с помощью синтаксиса состояния MXML. Примерно так:

visible.skinPartHidden="true"

2 голосов
/ 24 мая 2011

Это зависит от того, какую часть вы хотите скрыть / раскрыть.Если вы говорите о некоторой графике, специфичной для скина (которая не представлена ​​как объявление [SkinPart] в компоненте хоста), вы можете реализовать две стратегии:

  • Ваша логика скрытия / раскрытия - это только частьзрения, но нет функциональности компонента.В этом случае вы должны расширить свой скин и разместить там логику скрытия / раскрытия.Вы можете использовать привязку данных свойств hostComponent.
  • Ваша логика скрытия / раскрытия добавляет некоторые новые функции.Расширьте свой компонент и введите новое состояние просмотра или объявите целевую часть обложки там и измените видимость в компоненте при некотором изменении свойства.В этом случае возможно, что вам также придется изменить скин.

Для изменения видимости известной заявленной части скина вы можете использовать модификации стратегий, перечисленные выше.Во второй стратегии вам не нужно объявлять часть скина:)

...