Hay diversas formas de hacerlo, pero sin tirar de ASM (y aun así no se si se podría) no vas a conseguir que quede fluido.
Puede parecer fluido, pero no va a serlo.
Ya según la complejidad que le quieras dar al script (que te recomiendo que no mucha complejidad, porque sino quizás no tire), vas a...