Автоопределение изменений положения - PullRequest
2 голосов
/ 23 июня 2010

У меня есть пользовательский компонент Comp, который меняет свое положение в результате взаимодействия с другими компонентами и т. Д. Я проверяю изменения в его положении, постоянно проверяя его положение через фиксированные интервалы.Я ищу лучшее решение (возможно, основанное на событиях), чтобы отслеживать его положение, чтобы мне не приходилось постоянно проверять себя.

2 возможности:

  • . Сам компонент сам осознает свою позицию на сцене и сообщает основному приложению (через событие), когда он знает, что егопозиция изменилась.Это возможно?Компоненты осознают свою позицию или изменяют свою позицию?и к какому событию я могу подключиться, когда это произойдет?

  • другой вариант заключается в том, что основное приложение может отслеживать положение компонента и предпринимать действия при его изменении.Это возможно?Может ли основное приложение обнаруживать изменения в положении своих компонентов и, опять же, какое событие может быть использовано здесь?

Если нет, то как я могу обнаружить, когда этот компонент меняет положение без необходимостипостоянно проверяю сам.

<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009" 
               xmlns:s="library://ns.adobe.com/flex/spark" 
               xmlns:mx="library://ns.adobe.com/flex/mx" 
               xmlns:local="*">

    <local:Comp id="comp" x="100" y="100" />

</s:Application>

Ответы [ 3 ]

4 голосов
/ 23 июня 2010

Второе раннее предложение прослушать событие перемещения

http://livedocs.adobe.com/flex/3/langref/mx/core/UIComponent.html#event:move

Если вы хотите быть более конкретным, значения x и y будут отправлять измененные события.Таким образом, вы также можете прослушивать xChanged или yChanged, если хотите выполнять различные действия с движением x или y.

4 голосов
/ 23 июня 2010

Вы пытались прослушать событие move?

1 голос
/ 24 июня 2010

Может быть, вы можете играть с привязкой данных.Интерфейс BindingUtils позволяет установить функцию при изменении отслеживаемого свойства: http://livedocs.adobe.com/flex/3/langref/mx/binding/utils/BindingUtils.html#bindSetter()

...