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

pango 23.01.2007 15:13

Как клонировать спрайт?
 
Не нашел для спрайтов аналога .clone(), битмэпы копировать можно, а что делать например с загруженными внешними клипами? Попытка использования комбо с ByteArray не прокатывает

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

first = new Sprite()
second = clone (first) as Sprite
addChild(second)

недовольство следующего содержания:
Parameter child must be non-null.

что не так и как лечить?
использовать другой метод для копира? если да то какой
заранее спасибо

BlooDHounD 23.01.2007 16:52

ну например new Sprite() использовать :)
Если нужен именно clone() то берёшь экстэндишь свой класс от Sprite и пишешь ему метод clone, в котором переопределяешь все свойства Sprite у нового экземпляра.

pango 23.01.2007 17:12

2 BlooDHounD, ваш оптимизм вернул мне этот мир)
но это решение, не кажется мне ни простым, ни идеальным.
Видимо вы знаете что-то, чего не знаю я))
Например graphics у спрайта read-only. Как мне в него записать graphics копируемого спрайта, или что нужно переопределять, если копируемый спрайт содержит детей.

__i 23.01.2007 19:45

Эта тема уже подымалась гдето здесь ниже, но все сводится к тому что что наследуем спрайт и все "добавляющие методы" преопределяем, запоминая действия. Долго и не удобно )

Nirth 23.01.2007 20:46

Пользователь pango получает предупреждение, за то что не прочел правила форума.
Пользователь pango получает предупреждение за то что не воспользовался поиском.

Следующее нарушение будет каратся баном
Тема закрыта.


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

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