Typically, when I want to open a FlxSubState that I have defined in my code, I will use:
openSubState(new MySubState());
I have all of my create/add logic inside MySubState.create()
Which works fine, except, if there is a lot of stuff on that SubState it can cause a huge lag spike making the game 'freeze' before the substate is displayed.
If I try set a variable to my substate and re-use it, it works once, but then crashes the game when I try to open it a second time, because the substate is being auto-destoyed on close.