PDA

Просмотр полной версии : Как клонировать спрайт?


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 получает предупреждение за то что не воспользовался поиском.

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