Do you want to save 'ass. getTextures (' role_ ')' separately?

I want to know if using “ass. getTextures (” role_ “)” multiple times to create a “MovieClip” will generate a large amount of memory?

var c1:MovieClip = new MovieClip(ass.getTextures(“role_”), 12);

    var c2:MovieClip = new MovieClip(ass.getTextures("role\_"), 12);

    var c3:MovieClip = new MovieClip(ass.getTextures("role\_"), 12);

    var c4:MovieClip = new MovieClip(ass.getTextures("role\_"), 12);

    var c5:MovieClip = new MovieClip(ass.getTextures("role\_"), 12);

    var c6:MovieClip = new MovieClip(ass.getTextures("role\_"), 12);

Will saving ‘ass. getTextures (’ role_ ‘)’ result in less consumption?

var arr:Vector = ass.getTextures(“role_”);

    var c1:MovieClip = new MovieClip(arr, 12);

    var c2:MovieClip = new MovieClip(arr, 12);

    var c3:MovieClip = new MovieClip(arr, 12);

@Bink ‘ass’ is an instance of’ Asset Manager ’

phew

I’d like to suggest even from an efficiency standpoint, repeating the same call each time could be avoided. Under the hood it has a bit of repeated work to do each time, and it’s avoidable.

Perhaps instead, something like this:

var roleTextures:Vector<Texture> = ass.getTextures("role\_");

var c2:MovieClip = new MovieClip(roleTextures, 12);
var c3:MovieClip = new MovieClip(roleTextures, 12);
...

As for the memory question, to be honest I’ve not tested it. My approach to this issue has always been defensive, because the applications I build typically need 24/7 uptime and stability.

I create once → re-use many.

If you are needing to remain as slim as possible in terms of system memory, then perhaps a create → destroy → cleanup ↲ approach is needed.

@Bink

Okay, okay, thank you for your positive response.

No problem! :+1:

If within a class you’re expecting to keep needing those textures (create → destroy → cleanup ↲), then I’d even suggest holding those textures in a class variable that sticks around.

It retains a persistent reference to those textures for re-use during runtime, and helps reduce pressure on the garbage collector.

Unless you pass a Vector<Texture> when calling AssetManager.getTextures() it will create a new Vector<Texture> every time

Each Vector<Texture> will use memory so if you want your movie clips to use the same, unmodified, texture list it’s better to store it and reuse it. As Bink said, it’s also faster because creating the texture list takes time.

@Bink

@Matse

Okay, I understand. Thank you very much.