Форум 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=127244)

FlashRabbit 08.07.2009 20:41

Приравнивание объектов
 
Код AS3:

var prop:Object;
var prop2:Object;
 
prop = new Object();
prop2 = new Object();
 
prop.content = 1;
prop2 = prop;
 
trace(prop2.content); // выведет 1
prop.content = 0;
trace(prop2.content); // выведет 0

Как сделать так, чтобы при смене prop не менялся prop2 ?

iNils 08.07.2009 20:46

Код AS3:

var prop:Object;
var prop2:Object;
 
prop = new Object();
prop2 = new Object();
 
prop.content = 1;
var ba:ByteArray = new ByteArray ()
ba.writeObject(prop)
ba.position = 0;
prop2 = ba.readObject();
 
trace(prop2.content); // выведет 1
prop.content = 0;
trace(prop2.content, prop.content); // выведет 1 0


FlashRabbit 08.07.2009 20:48

Спасибо.

IsupovS 21.07.2009 13:33

наверное вопрос в этот же топик...

Код AS3:

 
            private function someHandler(evt:Event):void
              {
 
                      var customObject:Object=clone(thingObject);
                      trace("cObject.depth : "+customObject.depth)  // cObject.depth : [object Object]
                      trace("tObject.depth : "+thingObject.depth)  //  tObject.depth : 1
 
 
                }
 
 
            private function clone(source:Object):Object
              {
                var copier:ByteArray=new ByteArray();
                copier.writeObject(source);
                copier.position=0;
                return (copier.readObject());
          }

это значит что при клонировании объекта, свойство depth превратилось из Number в Object... остальные свойства остались прежними..
кто встречался с данной проблемой? и из-за чего это могло произойти?

iNils 21.07.2009 13:42

Что есть thingObject?

IsupovS 21.07.2009 13:49

thingObject - некий объект имеющий ряд свойств(неважно каких), при клонировании объекта новый объект имеет те же свойства что и старый, но почему то одно из них, а именно depth становится Object.
это важно - Что есть thingObject?

Добавлено через 4 минуты
вот объект
Цитата:

{
elementsArray:elements,
library:wearXML.items.item.@library[itm],
id:wearXML.items.item.@id[itm],
depth:wearXML.@depth,
x:wearXML.items.item.@x[itm],
y:wearXML.items.item.@y[itm]
}


iflamberg 21.07.2009 14:04

clone () не может быть использовано на MovieClip или XML. Только на каких-то простых объектах без конструкторов, функций и т.п.

IsupovS 21.07.2009 14:05

вопрос решен..
Цитата:

{
elementsArray:elements,
library:wearXML.items.item.@library[itm],
id:Number(wearXML.items.item.@id[itm]),
depth:Number(wearXML.@depth),
x:Number(wearXML.items.item.@x[itm]),
y:Number(wearXML.items.item.@y[itm])
}
Цитата:

clone () не может быть использовано на MovieClip или XML. Только на каких-то простых объектах без конструкторов, функций и т.п.
- это простой объект содержащий number, string и array. решился приведением строк в Number()


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

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