3

私はcacooのようなアプリケーションにカットコピーペーストを実装しています。しかし、私はこれらの操作中に問題に直面します。カットコピーペーストの背後にあるアイデアを使用しています

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

したがって、オブジェクトのすべてのプロパティを保持することはできません。 フレックス4でこれらの操作を実行する他のアイデアがあります。フレックス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 に答える