Использование пользовательских состояний в средствах визуализации Spark

В Flex 4 разрешено использование состояний в средствах визуализации элементов Spark MXML?

Я спрашиваю об этом, потому что уже есть "встроенные" состояния, такие как

<s:states> 
    <s:State name="normal"/> 
    <s:State name="hovered"/> 
</s:states> 

Могу ли я добавить свои собственные пользовательские состояния, такие как "игра" и "inlobby"?

Должен ли я по-прежнему записывать "нормальный" и "зависший", даже если мой код AS3 в средстве визуализации элементов MXML не использует / не нуждается в них?

1 ответ

Решение

В Flex 4 разрешено использование состояний в средствах визуализации элементов Spark MXML?

Да! Рендерер это просто компонент, как и любой другой; и вы можете добавлять состояния, если хотите.

Я не уверен, как Flex List управляет установкой состояния средств визуализации. Таким образом, представляется возможным, что состояния в вашем средстве визуализации могут быть изменены из вашего "Пользовательского" состояния в одно из состояний Flex. Возможно, вам придется переопределить переменную currentState, чтобы предотвратить подобные изменения.

Должен ли я по-прежнему записывать "нормальный" и "зависший", даже если мой код AS3 в средстве визуализации элементов MXML не использует / не нуждается в них?

Нет, не добавляйте их, если они вам не нужны. Когда происходит взаимодействие мыши (например, зависание), ItemRenderer в конечном итоге зовет его getCurrentRendererState() метод, чтобы решить, какое состояние установить на визуализаторе. В этом методе есть много таких утверждений:

if (hovered && hasState("hovered"))
    return "hovered";

Если ничего не совпадает, состояние визуализатора останется неизменным.

Другие вопросы по тегам