webForumDet fria alternativet

Wait eller Sleep i FLASH?

Flashur Flash, Shockwave

3 svar · 226 visningar · startad av ebbechi

ebbechiMedlem sedan okt. 20047 inlägg
#1

Jag har gjort en liten FLASH applikation där användaren matar in en text, FLASH utvärderar texten och skriver ut ett svar i en Textfield.

Så långt fungerar programmet perfekt, men jag vill få till effekten att ett ord eller ev en bokstav i taget dyker upp i textfield:en. Som det är nu dyker bara en stor blobba text upp och det går för snabbt för användaren att hänga med.

Jag har anvnänt split för att dela upp meningen som ska skrivas upp i en Array, sedan skrivs arrayen ut element för element med ett blanksteg emellan, problemet är nu att detta går också väldigt snabbt. Jag skulle vilja lägga till en fördröjning på någon sekund, eller kanske millisekunder, i for-loopen som skriver ut texten, för att som nämnt ovan skapa effekten av att texten dyker upp gradvis.

Hur orsakar man en fördröjning? Jag kan varken hitta sleep eller wait i Actionscripts funktioner.

Koden nedan är den som skriver ut texten:

    **//answers är en array med meningar** 
    **//orden i answers sparas i en array som heter speak**  

            speak = answers\[y\].split(" ");
			
for(z = 0; z \< speak.length;z++){

    response += speak\[z\] + " ";

                **// här vill jag ha in pausen**  

			}
mirandirMedlem sedan maj 2003750 inlägg
#2

Anledningen till att det går så snabbt är att flash endast updaterar grafiken sedan den kört allt skript klart. Och därmed kör den igenom for/while/do..while loopar utan att updatera grafiken... Vad du behöver göra är att använda t.ex. onEnterFrame eller en setInterval().

speak = answers[y].split(" ");

timer = setInterval(addLetter, 500);

function addLetter()
{
    response += speak.shift() + " "
    if(!speak.length)
         clearInterval(timer);
}

/Mirandir

ebbechiMedlem sedan okt. 20047 inlägg
#3

Funkar inte med min kod :-(

Tack för svaret,
Jag är lessen, jag är lite seg, skulle du kunna posta en lösning som bibehåller min for-loop?

ebbechiMedlem sedan okt. 20047 inlägg
#4

Glöm det

Jag fixade det, jag var tvungen att kasta om allting lite bara, i din kod så "försvinner" ju array:en steg för steg.

I min kod tänkte jag att man bara skulle loopa igenom array:en och skriva ut allting.

Men nu är det fixat och jag tackar och *bockar*

122 ms totalt · 3 externa anrop · v20260731065814-full.29ac60f6
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
119 ms — hämta tråd, inlägg och bilagor (db)