首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >复制/克隆Vector.<MovieClip>

复制/克隆Vector.<MovieClip>
EN

Stack Overflow用户
提问于 2014-05-07 10:45:05
回答 1查看 94关注 0票数 0

如何复制向量的内容?

代码语言:javascript
复制
private var slotMC:MovieClip;
    private var slotV1:Vector.<MovieClip> = new Vector.<MovieClip>();
    private var slotV2:Vector.<MovieClip>;
    private var slotV3:Vector.<MovieClip>;

    public function InputSlot():void {
        registerClassAlias("MovieClip", MovieClip);
        for (var i:int = 1; i < typeAmount + 1; i++) {                      
            SlotClass = Main.queue.getLoader('main_uiMC').getClass('slot0' + i) as Class;
            slotMC = new SlotClass();
            slotMC.name = "slot" + i;

            //push to vector before randomly add to stage
            slotV1.push(slotMC);
        }

        slotV2 = clone(slotV1);
        trace('slotv2', slotV2);
    }

    private function clone(source:Vector.<MovieClip>):Vector.<MovieClip> {  
        var myBA:ByteArray = new ByteArray();
        myBA.writeObject(source);
        myBA.position = 0;

        return myBA.readObject() as Vector.<MovieClip>;
    }

它返回slotV2的null。或者在这种情况下,多维向量会是更好的方式吗?我不知道我还会在未来的MC中添加什么信息。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-07 11:14:04

除非对象的类实现DisplayObject,否则不能深入克隆任何类型的IExternalizable向量。这是因为深入克隆一个DisplayObject需要克隆它的所有引用,包括整个子列表和阶段,您不能再做另一个阶段了。因此,最好通过在循环中创建更多的SlotClass实例并将它们填充到相应的向量中来创建“深度克隆”。

代码语言:javascript
复制
for (var i:int = 1; i < typeAmount + 1; i++) {                      
        SlotClass = Main.queue.getLoader('main_uiMC').getClass('slot0' + i) as Class;
        slotMC = new SlotClass();
        // slotMC.name = "slot" + i; 
        // drop name setting, you'd better use position in vector to refer to the clip

        //push to vector before randomly add to stage
        slotV1.push(slotMC);
        slotMC = new SlotClass();
        slotV2.push(slotMC);
        slotMC = new SlotClass();
        slotV3.push(slotMC);
    }

不要忘记在运行循环之前初始化向量。

另外一点是,考虑到为什么需要这几个向量,使用多维向量可能更好。

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

https://stackoverflow.com/questions/23515619

复制
相关文章

相似问题

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