upgrade AddItems to share instances they've created so they don't get re-instantiated
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/2c96825c Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/2c96825c Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/2c96825c Branch: refs/heads/develop Commit: 2c96825c2f44ea5208b83d0cf2bfb330f5309cec Parents: d69d039 Author: Alex Harui <[email protected]> Authored: Mon Oct 27 11:04:26 2014 -0700 Committer: Alex Harui <[email protected]> Committed: Wed Oct 29 11:15:41 2014 -0700 ---------------------------------------------------------------------- frameworks/as/projects/FlexJSUI/src/mx/states/AddItems.as | 10 +++++++++- .../FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as | 10 ++++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c96825c/frameworks/as/projects/FlexJSUI/src/mx/states/AddItems.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/mx/states/AddItems.as b/frameworks/as/projects/FlexJSUI/src/mx/states/AddItems.as index 393f65d..45de88d 100644 --- a/frameworks/as/projects/FlexJSUI/src/mx/states/AddItems.as +++ b/frameworks/as/projects/FlexJSUI/src/mx/states/AddItems.as @@ -54,8 +54,10 @@ package mx.states public var items:Array; - public var itemsDescriptor:Array; + public var itemsDescriptorIndex:int; + public var itemsDescriptor:Object; + public var destination:String; public var propertyName:String; @@ -69,6 +71,12 @@ package mx.states public function setDocument(document:Object, id:String = null):void { this.document = document; + itemsDescriptor = document.mxmlsd[itemsDescriptorIndex]; + if (itemsDescriptor is Array) + { + itemsDescriptor = { object: null, descriptor: itemsDescriptor }; + document.mxmlsd[itemsDescriptorIndex] = itemsDescriptor; + } } /** http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/2c96825c/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as ---------------------------------------------------------------------- diff --git a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as index f467621..a31b680 100644 --- a/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as +++ b/frameworks/as/projects/FlexJSUI/src/org/apache/flex/core/SimpleStatesImpl.as @@ -142,8 +142,14 @@ package org.apache.flex.core var ai:AddItems = AddItems(o); if (ai.items == null) { - ai.items = MXMLDataInterpreter.generateMXMLArray(ai.document, - null, ai.itemsDescriptor); + ai.items = ai.itemsDescriptor.object; + if (ai.items == null) + { + ai.items = + MXMLDataInterpreter.generateMXMLArray(ai.document, + null, ai.itemsDescriptor.descriptor); + ai.itemsDescriptor.object = ai.items; + } } for each (var item:DisplayObject in ai.items) {
