Глубокое клонирование в ActionScript - PullRequest
7 голосов
/ 27 апреля 2011

Каков наилучший метод для глубокого клонирования объектов в ActionScript?

Ответы [ 2 ]

10 голосов
/ 27 апреля 2011

Лучший способ сделать это - использовать ByteArray с методом writeObject. Как это:

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

Подробнее об этом здесь: http://www.kirupa.com/forum/showpost.php?p=1897368&postcount;=77

0 голосов
/ 21 марта 2012

Если вы пытаетесь глубоко клонировать экранный объект, это единственный способ, которым он работал для меня:

     public static function clone(target:DisplayObject ):DisplayObject      {
                var bitmapClone:Bitmap = null;          
                var bitmapData:BitmapData = new BitmapData(target.width,target.height,true,0x00000000);
                bitmapData.draw(target);    
                bitmapClone = new Bitmap(bitmapData);
                bitmapClone.smoothing = true;           
                return bitmapClone;
}

Обратите внимание, что объект будет копироваться только визуально. Он не будет копировать методы или свойства. Я использовал это, когда загружал внешние изображения и использовал их в нескольких местах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...