You reset "val" each time through loop() and you flash the lights based on that variable. Since you are not holding the button down val turns to zero (I guess) and of course the flashing code does not execute.
You need to separate which animation should be playing from the button press, so if there is no button press the animation does not change and keeps playing.
Here's some code to consider:
int animationNumber = 0;
void loop () {
int val = analogRead(sensePin);
// set animation based on button
if ( val >= 500 )
{
animationNumber = 1;
} else if ( val >= 300 ) {
animationNumber = 2;
} else if ( val >= 250 ) {
animationNumber = 3;
} else if ( val >= 160 ) {
animationNumber = 4;
} else if ( val >= 140 ) {
animationNumber = 5;
} // else
switch ( animationNumber )
{
case 1:
// move val == 538 code here
break;
case 2:
// move if (val == 318) code here
break;
// add other cases here
default:
break;
} // switch
I think this will act as you want.
Already good advice in this thread on proceeding further, mine is to separate each animation into it's own function, giving each a descriptive name. then call those functions in the switch statement. Pulling the code out of loop() will make it easier to read and change.