Использование пользовательских состояний в средствах визуализации 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";
Если ничего не совпадает, состояние визуализатора останется неизменным.