Copy link to clipboard
Copied
Ok so this has been bugging me for awhile a so far I've ignored it because it's not a huge deal but I have a type writer effect using the code below, the problem is I want, when a button is clicked, for it to finish completely. Just jump right to the end. Basically the typing starts and then when said button is clicked, it displays all the text as opposed to just stopping in the middle or heading to the next frame.
I've seen ways to restart it, ways to stop it in the middle, but I've yet to see a way for it to quickly finish. I don't care if I need to replace the code I'd just like to be able to do this.
--------------
var mySound:Sound = new kb();
var mySoundChannel:SoundChannel = mySound.play(0);
import flash.utils.Timer;
import flash.events.TimerEvent;
var i=0;
var myString:String = "Text here shows up in text box"
var mytimer:Timer = new Timer(10,myString.length);
mytimer.addEventListener(TimerEvent.TIMER, timerHandler);
mytimer.start();
function timerHandler(event:TimerEvent):void{
T1.appendText (myString.charAt(i));
i++;
if (i==myString.length){mySoundChannel.stop();}
}
All you should need to do is stop the Timer and then assign the entire string to the textfield. So in whatever event handler you have for the button....
mytimer.stop();
T1.text = myString;
Copy link to clipboard
Copied
All you should need to do is stop the Timer and then assign the entire string to the textfield. So in whatever event handler you have for the button....
mytimer.stop();
T1.text = myString;
Copy link to clipboard
Copied
Oh thank you, this helped a lot. For the code I used
button.addEventListener(MouseEvent.CLICK, stops);
function stops(e:MouseEvent)
{
mytimer.stop();
T1.text = myString;
if (mytimer.stop){mySoundChannel.stop();}
}
and it works great, but I seem to be having a little bug. When the button is clicked my text "jumps" up by a whole line. It seems that the code that holds the text is in fact not starting at the very start of the text box but one line below it. I've been poking around but I'm unsure what's causing this gap. Is there a way fix this or have when the button is clicked the text jump down by one line?
Edit: I know I can make it by doing
T1.text = "\nTexthere"
But there has to be a better way somewhere.
Copy link to clipboard
Copied
Textfield for some odd reason seem to have a carriage return even though you never asked for one. What you might try is to just assign an empty string to the textfield to start things off.
T1.text = "";
If that doesn't work then I know there is a way to do it that involves emptying the textfield.
Copy link to clipboard
Copied
Thank you it worked like a charm! It's quite odd that it does that but at least the fix is just a short line of code. Thank you again you were a big help.
Copy link to clipboard
Copied
You're welcome
Get ready! An upgraded Adobe Community experience is coming in January.
Learn more