Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 3.0 (http://www.flasher.ru/forum/forumdisplay.php?f=83)
-   -   как создать копию объекта? (http://www.flasher.ru/forum/showthread.php?t=110763)

manah 08.04.2008 15:11

как создать копию объекта?
 
Здрасти!
Есть объект который передается нескольким объектам, эти объекты должны сохранить его копию у себя.
Вопрос: как это реализовать?

например:
Код:

package {
        import flash.display.Sprite;
        public class Begin extends Sprite{
                public function Begin(){
                        var obj:Object = new Object();
                        obj.str = "HI";
                        var ob1 = new Otype(obj);
                        var ob2 = new Otype(obj);
                        obj.str = "IH";
                        ob1.tr();
                        ob2.tr();
                }
        }
}

вот Otype:
Код:

package {
        public class Otype{
                var obj:Object;
                public function Otype(a:Object){
                        obj = a;
                }
                public function tr(){
                        trace(obj.str);
                }
        }
}

выводит:
Код:

IH
IH


NePridymal 08.04.2008 18:52

Уже обсуждалось тут несколько раз. Поищи.
Если коротко, то можно невизуальные объекты копировать с помощью ByteArray (методы readBytes и writeBytes), но при этом класс копируемого объекта должен обязательно реализовывать интерфейс IExternalizable.

_Smirnoff 09.04.2008 13:27

Перед тем как создать тред, поищите нет ли в данной теме, похожего поста.Делаем поиск по ключевым словам вашего вопроса.И если такого не находится, тогда создаем....

ulik 09.04.2008 18:34

Код:

function copyObject(value:Object):Object {
        var result:Object=new Object();
        for (var i:* in value) {
                result[i]=value[i];
        }
        return result;
}
trace(copyObject({name:"vasya", id: 123}).name);


manah 10.04.2008 08:13

спасибо большое...
я искал - видимо плохо :)


Часовой пояс GMT +4, время: 23:40.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.