В моем приложении flex у меня есть общедоступное свойство связывания. Я хочу, чтобы каждый раз, когда значение этого свойства изменяется, функция запускается. Я попытался использовать ChangeWatchers, но похоже, что они применимы только к встроенным компонентам, таким как изменение текстового поля. Я хотел бы сделать то же поведение с свойством, которое изменяется во время выполнения.Просмотр связанного свойства
ответ
Одним из вариантов является использование BindingUtils.bindSetter
(который, кстати, возвращает ChangeWatcher):
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" creationComplete="this_creationComplete()">
<mx:Script>
<![CDATA[
import mx.binding.utils.BindingUtils;
import mx.binding.utils.ChangeWatcher;
[Bindable]
public var myValue:int = 0;
private function this_creationComplete():void
{
var cw:ChangeWatcher = BindingUtils.bindSetter(myValueChanged, this, "myValue");
}
private function setValue():void
{
myValue = getTimer();
}
private function myValueChanged(o:Object):void
{
trace("myValue: " + myValue.toString());
// You can also use o.toString() -- the new value will be passed into the function
}
]]>
</mx:Script>
<mx:Button label="Click Me" click="setValue()" />
</mx:Application>
Здесь myValueChanged
вызывается всякий раз, когда myValue
изменения свойств. Конечно, есть и другие способы, но я часто использую этот подход с хорошими результатами. Надеюсь, поможет! Отправьте обратно с вопросами, и я буду следить.
ну, самый простой способ - прослушать PropertyChangeEvent.PROPERTY_CHANGE
... если вы объявите свойство связующим, то mxmlc генерирует код для отправки этого события ... если вы позволите компилятору сохранить сгенерированный ActionScript, тогда вы будете увидеть ...
кроме этого, вы можете захотеть взглянуть на BindingUtils
...
Посмотрите в класс BindUtils как предполагает back2dos.
И, кроме того, вы можете установить имя события, которое будет срабатывать при изменении делается для свойства (по умолчанию propertyChange), как это:
[Bindable("change")]
var myProperty : SomeClass;
То есть, если ChangeWatchers добавляет слушатели для событие изменения вместо события propertyChange. Который был бы странным, но не невозможным со всеми неудачами SDK flex.
Но опять же, я думаю, что класс BindUtils должен сделать трюк для вас.
Используйте класс ObjectProxy или его подкласс и завершите класс, у которого есть свойство, которое вам нужно посмотреть. В моем примере, я звоню FUNC, если кто-то изменить свойство зарплаты, придавая ему значение больше 55000 в объекте Person:
пакет com.farata { импорт mx.utils.ObjectProxy; импорт flash.utils. *;
использование пространства имен flash_proxy;
public dynamic class MyPersonProxy extends ObjectProxy
{
// The object to wrap up
private var person:Person;
public function MyPersonProxy(item:Person){
super(item);
person=item;
}
flash_proxy override function setProperty(name:*, value:*):void {
если (имя == «зарплата» & & значение> 55000) {// добавить новое свойство к этому экземпляру // класса Человек, который может быть использован в расчетах // от общей компенсации setProperty («пенсия», 0,02); } super.setProperty (имя, значение);
} } }
- 1. Просмотр связанного списка
- 2. Использование связанного свойства в сеттере
- 3. Свойства Просмотр и Редакторы
- 4. Просмотр связанного источника данных в формате Sharepoint
- 5. Доступа неизвестного «просмотр» компонент свойства
- 6. Флажок JavaFX не соответствует значению связанного свойства
- 7. Джанго запросы на свойства связанного объекта устанавливает
- 8. Как получить определенные свойства связанного объекта?
- 9. Обновление значения связанного свойства во время PropertyChangedCallback
- 10. Ярлык для создания свойства, связанного с полем?
- 11. Изменение свойства элемента на основе связанного значения
- 12. Просмотр свойства глобального объекта в Angular JS
- 13. Просмотр свойства длины ArrayCollection в AS3/Flex
- 14. Как использовать веб-просмотр, чтобы показать страницу связанного контакта?
- 15. Как оживить фон текстового блока при изменении значения связанного свойства?
- 16. Как получить имя свойства, связанного с столбцом в HBM?
- 17. Измените значение связанного свойства на существующий элемент в iron-list
- 18. Странное поведение для свойства, связанного с «SelectedItem» WPF Combobox
- 19. Свойства объекта, связанного с доступом, от объекта пользователя после регистрации
- 20. Извлечение связанного свойства профиля пользователя в MVC 5 Идентификатор
- 21. Если изменение текста свойства а Дива обновим связанного ko.observableArray
- 22. Howto немедленно обновляет TextBox после исправления связанного свойства?
- 23. Изменить цвет текста DataGrid Cell при изменении значения связанного свойства
- 24. MVVM - скрытие элемента управления, когда связанного свойства нет
- 25. Привязка ItemsSource ListView к свойству уже связанного свойства
- 26. Получение свойства класса из дерева данных, связанного с treeviewitem, нажатием
- 27. Получить свойства объекта, связанного с строкой в разделе UITableView
- 28. Динамически назначая свойства на непостоянной данных связанного ASP.NET управления
- 29. Невозможно установить значение связанного свойства в угловом компоненте
- 30. Установить свойства строки для связанного с данными datagrid