Dynaamisten tekstikenttien motion tween ja actionscript

18.01.2006

Oletetaan tilanne, jossa täytyy tehdä dynaamisesti päivitettävä flash-kikkare, jossa on otsikko ja leipätekstiä. Fontti on embedattava (fonttia ei löydy oletuksena useimmilta koneilta), ja teksti ei voi vain lävähtää näkyviin. Tarvitaan siis jonkinsorttinen transitioefekti piristämään tilannetta. Simppelein ratkaisu on “fade in”, jossa kohde muuttuu läpinäkyvästä läpinäkymättömäksi. Otsikko voi olla useammalla rivillä (tilaa on rajoitetusti), joten sen alapuolella olevan leipätekstin täytyy muuttaa sijaintiaan suhteessa sitä edeltävään otsikkoon. Tällöin täytyy muuttaa koodillisesti leipätekstikentän sijaintia tweenauksen aikana, kun lopullinen sisältä on tuotuna dynaamiseen tekstikenttään.

Tässä törmäsin mielenkiintoiseen tilanteeseen. Tweenauksen alussa (tai aikana) tehtävät koodilliset ominaisuuden muutokset jotenkin lukittuvat. Jos tekstikentän läpinäkyvyys on alussa 0% ja koodilla muuttaa esimerkiksi tekstikentän y-koordinaattia tweenauksen alussa, läpinäkyvyys lukittuu siihen mitä se oli tweenauksen alussa, vaikka ominaisuuteen ei koskekaan koodilla. Ärsyttävä tilanne.

Toivottavasti oheinen kuva auttaa edes jossain määrin ymmärtämään tilannetta. Ylempänä lopputilanne ilman fiksausta, alemmassa kuvassa lopputilanne fiksauksen kanssa.

example

Homma korjaantuu siten, että katkaisee tweenauksen kahteen osaan. Ensimmäisessä osassa tuodaan vain sisällöt, eikä muuteta tweenauksella mitään. Tämän lisäksi laitetaan tweenauksen alkuun

myTxtField._visible = false;

joka siis piilottaa koko tekstikentän näkyvistä. Ominaisuuksia voi silti edelleen säätää koodillisesti. Tämän jälkeen tuodaan tekstisisältö dynaamiseen tekstikenttään. Seuraavassa keyframessa asetetaan

myTxtField._visible = true;

ja aloitetaan tweenaus alpha 0% -> 100%. Works.

5 vastausta kirjoitukseen “Dynaamisten tekstikenttien motion tween ja actionscript”

  1. Jontti

    kiitos juuri tuota tietoa hainkin…not

  2. Eipäs olla näsäviisaita. :/

  3. Niina

    Heipsankeipsan, tulin tsiigaamaan! :)

  4. Anna

    Ööö, kuulostaa kovin viisaalta. Harvoin pääsee lukemaan tekstiä josta ymmärtää yhtä vähän:)

  5. Toi oli enemmänkin itselle muistettavaksi, kun siihen ongelmaan törmää joskus kuitenkin uudestaan. Ja toivottavasti siitä on nyt hyötyä muillekin saman ongelman kanssa painiville.