Andrzej i don't work with Starling so i may not give you specific Starling answer but this is how i would do it:
- i would instantiate X number of display objects (Image in starling) where X is the number of bitmaps i want to show at once
- i would create X number of textures that would be binded to the X number of display objects above, this can actually be done in the first step as well
- these image/texture instances would be persistent no reallocation
- now the dynamic part lets say i want to display first X bitmaps i would load these bitmaps and then one by one assign them to these textures, this may be tricky and depends on what is and whats not transparent in Starling itself but behind the scenes it should do something like this:
1. texture is not initialized, it should create valid bitmap for the assigned bitmap resource (power of 2 rule) copy the bitmap resource into the valid bitmap, create the context texture for it and upload valid bitmap data
2. texture is already initialized, checks if the initialized size is valid for the new bitmap resource if yes simply upload it
3. texture is already initialized but the initialized size is not valid for the new bitmap resource dispose the texture and reinitialize like in step 1.
And thats pretty much it, you are reusing images/textures without reallocation, the only reallocation that happens is context textures invalidation and thats only when the valid size is mismatched so if you are using similarly sized bitmaps it will never happen, you can easily avoid it by using large enough context textures so it is able to encapsulate any of your assets.