Я вызываю изображения из библиотеки для использования. Но поскольку я буду постоянно добавлять и удалять изображения, поэтому я попытался скопировать битмапдаты в спрайт и повторно использовать спрайт.Рисование BitmapData для Sprite по-прежнему с использованием самого bitmapdata?
private function loadImage():void {
for (var i:int = 1; i < typeAmount + 1; i++) {
SlotClass = Main.queue.getLoader('main_uiMC').getClass('slot' + i + 'bmp') as Class;
bmpDSlot = new SlotClass() as BitmapData;
bmpDSlotV.push(bmpDSlot)
}
}
private function bitmaping():void {
for (var i:int = 1; i < typeAmount + 1; i++) {
slotS = new Sprite()
slotS.graphics.beginBitmapFill(bmpDSlotV[i - 1], new Matrix, false, true)
slotS.graphics.drawRect(0, 0, bmpDSlotV[i - 1].width, bmpDSlotV[i - 1].height);
slotS.graphics.endFill();
bmpV.push(slotS)
}
Каждый раз, когда я дублировать спрайт, профайлер FlashDevelop показал, что BitmapData добавляется также. Даже когда я использую removeChild для удаления Sprite, использование памяти не будет уменьшаться. Есть ли способ лучше скопировать содержимое bitmapdata и может быть полностью удален, когда я удалю спрайт?
* Я все еще использую изображение, только в этом конкретном раунде я хотел бы удалить спрайт с изображением.
Сначала я пробовал растровое изображение. Но удаление дочернего элемента не будет удалять используемые данные, если я не уничтожу битмаддаты. – Hwang
Не следует, правильно. Но добавление другого растрового изображения не добавит еще одну BitmapData. Кроме того, если вы хотите повторно использовать ресурс, вы должны использовать этот ресурс только в том случае, если вы даже не планируете использовать его снова. BitmapData подходит здесь IMHO. – Vesper
Вы правы! я вернусь к некоторым другим функциям, которые могли бы использовать изображение, видимо, это было что-то еще, что хранит данные. удалять данные после очистки каждого раунда. – Hwang