No, see my code - you can calculate (time-ButtonSprite.timePressed) to fill up the meter while the button is being held in "Is Touching" event. You can add other conditions, say the meter starts filling up if holding time is more than 1 second, and stops after 3 seconds.
The same formula can be used when touch is released or after finger has moved away from the button - in "Is NOT Touching" event, before resetting timePressed to 0.
You don't need another flag, since you have timePressed variable. When it's 0, you know that the button is not in touch.