Anzeige
Tutorialbeschreibung

Durchlaufender Text mit ActionScript2

Durchlaufender Text mit ActionScript2

 

Dieses kleine Tutorial wird euch zeigen, wie man per Zufall alle einzelnen Buchstaben eines Textes durchläuft, so dass am Ende der gesamte Text dargestellt wird.

 


Schritt 1

Zuerst benötigen wir ein Textfeld auf der Bühne. Dieses erstellen wir, indem wir das Text-Werkzeug auswählen, und unser Textfeld auf der Bühne zeichnen.

Bilder

 

Schritt 2

Diesem Textfeld müssen wir etwas auf unsere Wünsche einstellen. Wir weisen dem Textfeld eine Variable zu:

In unserem Fall textvariable.

Zudem wählen wir in den Einstellungen noch Dynamischer Text und Einzeilig aus.

Bilder

 

Schritt 3

Jetzt wählt ihr den ersten Frame eurer Hauptzeitleiste aus und drückt anschließend F9, sodass euer Aktionen-Fenster geöffnet wird. In dieses Fenster werden jetzt unseren Code schreiben.

Zunächst benötigen wir ein Array, das all unsere Buchstaben und auch einige Sonderzeichen beinhaltet. Die Buchstaben benötigen wir nur als Großbuchstaben.

 

Code:

var letter:Array = new Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'Y', 'X', 'Z', '@', '€', '$', '%', '§', '!', ' ', ',', '.', ':', '-', 'Ü', 'Ö',  'Ä', '+');

Zudem benötigen wir einige Variablen zur Konfiguration des Ganzen.

Code:

var my_string:String = textvariable;//erstellt eine Kopie des Textfeldinhaltes, zum späteren Abgleich
var a = 0; //Wert der erhöht wird
v3 = ' ';//Erstellt eine Hilfsvariable

Schritt 4

Schon kann es ans eingemachte gehen. Wir beginnen also mit

 

Code:

onEnterFrame = function () {

 

da unsere Buchstaben ja schließlich ständig laufen müssen.

 

Schritt 5

In diese Schleife wir zunächst ein Buchstabe per zufall aus unserem Array gepickt

Und in der Variablen v1 gespeichert.

Code:

v1 = letter[int(Math.random()*letter.length)];

 

 zudem wird der zu findende Buchstabe isoliert.

 

Code:

var part = my_string.slice(a, a+1);// Startbuchstabe, Endbuchstabe

 Schritt 6

 Jetzt starten wir eine If-Abfrage, in der der ständig wechselnde Buchstabe mit dem nun isolierten und zugleich in Großbuchstaben konvertierten Teil des Wortes verglichen wird.

Code:

if (v1 == part.toUpperCase()) {

 Wenn die Buchstaben identisch sind, wird nun der Buchstabe wieder ausgegeben und zugleich in der Variable v3 zwischengespeichert.

Code:

textvariable = v3=v3+my_string.slice(a, a+1);

Nun soll unser Script natürlich aufhören zu laufen, wenn das komplette Wort geschrieben steht.

Dazu nutzen wir erneut eine If-Abfrage, die Soll- und Ist-Wert vergleicht und bei Zutreffen die onEnterFrame-Function stoppt.

 

Code:

if (textvariable == my_string) {
    delete this.onEnterFrame;
    }

zuletzt wird noch der Wert der Variable a erhöht.

Code:

a++;

 

Schritt 7

Wenn unser Zufallsbuchstabe nicht mit dem isolierten Buchstaben des Textes übereinstimmt ,startet die else-Schleife.

Code:

else {
    textvariable = v3+v1;// Ausgabe= bisheriger Text + Zufallsbuchstabe
      }

 

Schritt 8

Nun muss noch die onEnterFrame-Funktion mit einem } geschlossen werden.

Dann sollte euer gesamter Code so aussehen:

 

Code:

var letter:Array = new Array('A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'Y', 'X', 'Z', '@', '€', '$', '%', '§', '!', ' ', ',', '.', ':', '-', 'Ü', 'Ö', 'Ä', '+');

var my_string:String = textvariable;

var a = 0;

v3 = '';

onEnterFrame = function () {

            v1 = letter[int(Math.random()*letter.length)];

            var part = my_string.slice(a, a+1);

            if (v1 == part.toUpperCase()) {

                        textvariable = v3=v3+my_string.slice(a, a+1);

                        if (textvariable == my_string) {

                                   delete this.onEnterFrame;

                        }

                        a++;

            } else {

                        textvariable = v3+v1;

            }

};

 

Schritt 9

Um den Text schneller oder langsamer laufen zu lassen muss man die Bildrate des Dokuments verändern. Damit das Durchlaufen nicht zu lange dauert sollte man die Bildrate auf ca 30 bps setzen.

Schon ist das Tutorial vorbei und ihr habt einen durchlaufenden Text erstellt


Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von knock23
  • 25.09.2011 - 20:35

wie einpaar meiner vorgänger habe auch ich die frage ob das mit CS5 funktioniert ich habe alles gemacht was da steht sehe auch keinen fehler und es funktioniert einfach nicht.

Portrait von Kaef3r
  • 17.09.2011 - 09:02

Super Tut, vielen Dank! =)

Portrait von Romantika68
  • 09.05.2011 - 22:52

Danke, tolles Script!!!
Es klappt und eigentlich habe ich die Syntax auch verstanden - jetzt hätt ich aber eine Frage...

Wie kann ich das Script weiter schreiben? Ich möchte einen MC laden, wenn die Schrift fertig geschrieben ist.
Leider klappen alle meine Versuche nicht. Gibt es jemanden, der mir helfen kann?

Portrait von kleeaar
  • 09.05.2011 - 22:56

du musst nur in dieser if-Abfrage deinen MC laden.

if (textvariable == my_string) {

delete this.onEnterFrame;
}

denn hier wird ja abgefragt, ob der Text fertig geladen wurde.

Grüße

Portrait von Romantika68
  • 09.05.2011 - 23:12

Danke - werde es gleich versuchen!
...delete this - da hatte ich es noch nicht probiert - der Text soll stehen bleiben und ein ein weiterer Text auf der Bühne erscheinen.

Portrait von Maggou91
  • 09.12.2010 - 09:03

keine Funktion, zu schade ( benutze CS5)

Portrait von huckenbeck
  • 20.09.2010 - 15:04

Sorry, aber bei mir funktioniert das nicht. (benutze CS5)

Portrait von Zuckerkeks
  • 27.05.2010 - 21:20

Funktioniert das auch mit Cs5 ?? das will nich bei mit

Portrait von Recorim
  • 26.05.2010 - 18:21

sehr schön, aber wie kann ich zwei texte, gleichzeitig mit dem effekt ablaufen lassen? mfg

Portrait von Irona
  • 15.04.2010 - 01:19

netter Effekt - und so ein kurzes Script. Vielen Dank für die Hilfe. Bin noch totaler Anfänger!

Portrait von DonBlueDragon
  • 11.03.2010 - 04:12

also ich bin im bereich flash totaler noob jz geärget 2 stunden lang

Portrait von lifetime2b
  • 29.01.2010 - 17:03

sehr schön erklärt sehr übersichtlich

Portrait von snake_16
  • 13.01.2010 - 08:29

super
auch für einen blutigen Anfänger super verständlich.
Dank dem angemerktem "Automatisch unterschneiden" hats auf anhieb funktioniert ;)

Portrait von robertbit
  • 12.01.2010 - 12:47

Das Tut gefällt mir. Nur sollte darauf hingewiesen werden, daß das Feld "Automatisch unterschneiden" deaktiviert ist.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 25.11.2009 - 20:35

es geht bei euch vllt nicht weil ihr Automatisch Unterschneiden an habt macht das aus dann gehts siehe screeshot oben also erst schaun dann schlecht bewerten
ich finds super gut schön gemacht gut erklärt volle punktezahl von mir ^^

Portrait von UltimateX
  • 08.11.2009 - 12:49

geiler Effekt, gut umzusetzten und Verständlich erklärt Thx

Portrait von frankimuc
  • 19.08.2009 - 01:02

den effekt habe ich schon immer haben wollen. klasse!

Portrait von brina123
  • 10.07.2009 - 21:50

super idee, gut zu verstehen! danke

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 17.06.2009 - 13:28

sehr schönes tut und gut erklärt, auch sehr einfach umzusetzten thx^^

Portrait von der_hobel
  • 11.06.2009 - 11:33

super erklärt... hat gleich geklappt und habs in de hp eingebaut

x
×
×