首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >克隆flex组件

克隆flex组件
EN

Stack Overflow用户
提问于 2009-07-06 10:53:33
回答 6查看 7.3K关注 0票数 1

我正在尝试在运行时复制一个flex组件。

例如,如果我有这个

mx:Button label="btn“id="btn”click="handleClick(event)"/>

我应该能够调用一个名为DuplicateComponent()的函数,它应该返回一个与上面按钮完全相同的UI组件,包括事件侦听器。

谁能帮帮我??提前感谢

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-06 18:49:55

执行字节数组复制。下面的代码段应该会为您完成此操作:

代码语言:javascript
复制
// ActionScript file
import flash.utils.ByteArray;

private function clone(source:Object):*
{
    var myBA:ByteArray = new ByteArray();
    myBA.writeObject(source);
    myBA.position = 0;
    return(myBA.readObject());
}

注意,这段代码不是我自己写的,我很确定我是从Flex Coder列表上的一篇文章中得到的。

票数 5
EN

Stack Overflow用户

发布于 2009-07-06 11:39:30

要解决这个问题,您应该使用actionscript并动态创建按钮。

假设您希望按钮放在一个名为'someVbox‘的VBox中

代码语言:javascript
复制
for (var i:uint = 0; i< 10; i++){
    var but:Button = new Button();
    but.label = 'some_id_'+i;
    but.id = 'some_id_'+i;
    but.addEventListener(MouseEvent.CLICK, 'handleClick');
    someVbox.addChild(but);
}

我还没有测试过,但如果运气好的话,应该可以给vbox增加10个按钮。

票数 1
EN

Stack Overflow用户

发布于 2009-07-06 11:34:33

您不能在本地获取UIComponents的深层副本。你最好的办法是创建一个新的,并分析你必须添加一个重复的设置。老实说,这听起来确实有点代码的味道。我想知道有没有一个更好的解决方案,只要稍微重新思考一下。

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

https://stackoverflow.com/questions/1086436

复制
相关文章

相似问题

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