2013-07-03 1 views
1

В Flex 4 разрешено использовать состояния в рендерерах объектов Spark MXML?Использование пользовательских состояний в средствах рендеринга Spark

Я спрашиваю об этом, потому что там уже «встроенный» государстве, как

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

Могу ли я добавить мои собственные пользовательские состояния, как «Оружейный» и «inlobby»?

Должен ли я все еще выписывать «нормальные» и «зависающие», даже если мой AS3-код в средстве визуализации объектов MXML не используется/не нуждается?

ответ

3

В Flex 4 разрешено использовать состояния в рендерерах объектов Spark MXML?

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

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

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

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

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

Если ничего не соответствует, он оставит состояние Отображателя в неизменном.

+0

Да, это то, о чем я беспокоюсь: что наведение мыши над элементом изменяет состояние от моего пользовательского «игрового» до «зависания» ... –

+0

Вам нужно попробовать и посмотреть. Если вы являетесь собственным компонентом, не реализуете «зависание» или «нормальное» состояние, тогда не должно быть никаких проблем. [Я думаю] – JeffryHouser

+2

@AlexanderFarber Я отредактировал @ Reboog711 (надеюсь, что вы не возражаете!) Ответьте, чтобы задать свой другой вопрос. Это также даст вам представление о том, как оно будет вмешиваться в ваши собственные государства. Переопределите 'getCurrentRendererState()', если вам нужно обойти это. –

 Смежные вопросы

  • Нет связанных вопросов^_^