首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何克隆在画布中动态添加的UIComponents

如何克隆在画布中动态添加的UIComponents
EN

Stack Overflow用户
提问于 2013-08-28 21:15:24
回答 1查看 114关注 0票数 1

我在克隆在画布中动态添加的UIComponents到另一个画布时遇到了一个问题。

我遵循了这个示例,但它不适用于动态添加的组件,因为在这种情况下,childDescriptors会变成null。

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="horizontal">
     <mx:Script>
          <![CDATA[
               private function cloneButton_clickHandler (event:MouseEvent):void
               {
                    var childDescriptors:Array = original.childDescriptors;
                    var descriptorsCount:int = childDescriptors.length;
                    for (var i:int; i < descriptorsCount; i++)
                    {
                         cloned.createComponentFromDescriptor(original.childDescriptors[i],
                                                                       false);
                    }
                    cloned.validateNow();
               }
          ]]>
     </mx:Script>
     <mx:Button label="Clone Canvas" click="cloneButton_clickHandler(event);" />
     <mx:Canvas id="original" width="100" height="100" borderStyle="solid" >
          <mx:Label text="Some Label" />
          <mx:ComboBox dataProvider="{['data1', 'data2']}" bottom="0" />
     </mx:Canvas>
     <mx:Canvas id="cloned" width="100" height="100" borderStyle="solid" >

     </mx:Canvas>
</mx:Application>
EN

回答 1

Stack Overflow用户

发布于 2013-08-28 22:42:21

我从未使用childDescriptors克隆过对象,但您可以尝试在描述符设为null之前进行克隆,或者至少在此之前复制描述符。

作为实例化MXML对象的过程的一部分,描述符可能被设置为null。因此,您应该能够在此之前获得描述符。

尝试使用"initialize“或甚至"preinitialize”事件,该事件将由您希望克隆其子对象的对象调度。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18489042

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档