3

我正在像cacoo这样的应用程序中实现 Cut Copy Paste 。但我在这些操作中遇到问题。我在剪切复制粘贴后面使用想法

var className:String = getQualifiedClassName(objcut.getItemAt(i))
var klass:Class = getDefinitionByName(className) as Class
var cloneObject:* = new klass()

所以我无法保留对象的所有属性。 在 flex 4 中执行这些操作还有其他想法。我如何在 Flex 4(as3) 中复制图形对象。复制一个对象并多次粘贴。

4

1 回答 1

0

使用属性制作对象副本的最简单方法是使用 ByteArray:

public static function copy(value:Object):Object
{
    if (!value)
        return null;

    //register object class to prevent Error #1034: Type Coercion failed
    registerClassAlias(getQualifiedClassName(value), value.constructor);

    var buffer:ByteArray = new ByteArray();
    buffer.writeObject(value);
    buffer.position = 0;
    var result:Object = buffer.readObject();
    return result;
}

但是对于嵌套类,您仍然会收到错误 #1034。在复制之前,您需要为所有嵌套类注册别名以防止这种情况发生,例如在某些启动方法中。

于 2013-01-11T11:06:34.147 回答