|
|
|||||
Регистрация: Oct 2008
Сообщений: 3
|
AS3 Data binding to XML
такая вот проблема:
существует компонент some_component который вставляется в Application. В Application MXML'ом ему задается свойство Когда изменяется some__bindable_value то some_var тоже меняется... Компонент some_component создает динамически еще некоторые компоненты которым передается некоторая выборка из some_var: var dynamic_component: DynamicComponent = new DynamicComponent(); dynamic_component.some_property = some_var.item.(@name=='name')[0]; BindingUtils.bindProperty(dynamic_component, 'some_property', some_var.item.(@name=='name'), '0'); PS: гугл не хочет выдавать то что мне нужно. Добавлено через 7 часов 17 минут Понятно... пока сам не влезешь в то что генерирует Flex Builder ничего не будет. Добавлено через 9 часов 4 минуты Если кому будет интересно (я уже разобрался до сих пор =)): //импорт необходимых классов import mx.binding.Binding; import mx.binding.PropertyWatcher; import mx.binding.XMLWatcher; //исходное свойство [Bindable] private var src_prop: XML = <root> <item0> <item1 name="some name" /> </item0> </root>; //результирующее свойство private var dest_prop: XML; //функция которая связывает dest_prop как dest_prop = src_prop..item1.@name private function bindProp(): void { var binding:Binding; //Создает объект для связывания. // public function Binding(document:Object, srcFunc:Function, // destFunc:Function, destString:String) //document - это документ, который является целью всей этой работы. // (в большинстве случаев это будет this) //srcFunc - это функция, которая возвращает значение которое // задается результирующему свойству //destFunc - функция, которая будет принимать значения // и назначать его результирующему свойству. //destString - результирующее свойство которое представляется в виде строки binding = new Binding( this, function(): * { return src_prop..item1.@name; }, function(_sourceFunctionReturnValue:*):void { dest_prop = _sourceFunctionReturnValue; }, 'dest_prop' ); //PropertyWatcher - нужен если заменяется значение свойства //public function PropertyWatcher(propertyName:String, // events:Object, // listeners:Array, // propertyGetter:Function = null) //propertyName - наименование свойства для просмотра. //events - события которые указывают что свойство изменилось // (обычно это {propertyChange: true}). //listeners - массив Binding объектов, которые слушают этот Watcher. //propertyGetter - функция-помощник которая используется для доступа // непубличный переменных. var watcher: PropertyWatcher = new PropertyWatcher( 'src_prop', {propertyChange: true}, [binding], function(propertyName:String):* {return this[propertyName];} ); watcher.updateParent(this); //XMLWatcher - нужен если меняется значение какой то ветки XML'а //addChild - добавляет watcher'a, который будет наблюдать за // измениями внутри свойства. watcher.addChild(new XMLWatcher('item1', [binding])); //исполняет присваивание dest_prop = src_prop..item1.@name binding.execute(); } |
Часовой пояс GMT +4, время: 03:56. |
|
« Предыдущая тема | Следующая тема » |
|
|