Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-08-2006, 09:42   #1 (permalink)
05
 
Benutzerbild von gorgeous
 
Registriert seit: Nov 2004
Beiträge: 346
Question type writer in zeile für zeile ändern

hallo,

wie kann man aus diesem type writer anstatt das immer buchstabe für buchstabe dargestellt wird das ganze in wort für wort oder zeile für zeile umwandeln? geht das überhaupt?

ActionScript:
  1. TextField.prototype.typeWriter = function(str, ms) {
  2.     var me = this, i = 0;
  3.     _root.itv = setInterval(function () {
  4.         me.htmlText = str.substring(0, i);
  5.         i++;
  6.         if (i>str.length) {
  7.             clearInterval(itv);
  8.         }
  9.         updateAfterEvent();
  10.     }, ms);
  11. };
  12. //aufruf
  13. mytext.typeWriter(mystring, 10);

viele grüße, gorgeous

p.s. kann es sein das der type writer in den neuen (8,9) playern langsamer ist? ich hab gehört das es wohl mit der definition von "i" zusammen hängt?! weiss da jemand was von?
__________________
:)
gorgeous ist offline   Mit Zitat antworten
Alt 23-08-2006, 18:26   #2 (permalink)
05
 
Benutzerbild von gorgeous
 
Registriert seit: Nov 2004
Beiträge: 346
niemand eine idee?
wie nennt man denn solche typewriter die mehr als einen buchstaben aufeinmal darstellen können?
grüße, gorgeous
__________________
:)
gorgeous ist offline   Mit Zitat antworten
Alt 24-08-2006, 13:33   #3 (permalink)
lernwillig
 
Benutzerbild von Bugfixer
 
Registriert seit: May 2004
Ort: Berlin
Beiträge: 221
Hi,

du ersetzt substring durch nen split und teilst dadurch den satz an seinen leerstellen.
Durch den split befehl erhälst du ein array, in dem sich dann die einzelnen worte befinden.

Hier ein beispiel:
ActionScript:
  1. var my_str = "Ich bin ein test";
  2. var my_array = my_str.split(" ");
  3. for (var i = 0; i<my_array.length; i++) {
  4.     trace(my_array[i]);
  5. }
Bugfixer ist offline   Mit Zitat antworten
Alt 24-08-2006, 14:46   #4 (permalink)
05
 
Benutzerbild von gorgeous
 
Registriert seit: Nov 2004
Beiträge: 346
hi,

danke für die antwort. also ich hab das jetzt wie folgt:

ActionScript:
  1. TextField.prototype.typeWriter = function(str, ms) {
  2.     var me = this, i = 0;
  3.     _root.itv = setInterval(function () {
  4.         me.htmlText = str.split("");
  5.         for (var i = 0; i<me.length; i++) {
  6.             clearInterval(itv);
  7.         }
  8.         updateAfterEvent();
  9.     }, ms);
  10. };


irgendwie haut der mir jetzt aber immer ein "komma" zwischen die wörter anstatt die nacheinander einzublenden.

findet jemand den fehler?

grüße, gorgeous
__________________
:)
gorgeous ist offline   Mit Zitat antworten
Alt 24-08-2006, 15:06   #5 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
Hallo!

Du weißt nicht so genau, was du da eigentlich tust, oder?
PHP-Code:
var dein_str "Hallo das ist ein Test. Sollte aber funzen...";
TextField.prototype.typeWriter = function(strms) {
    
this.text "";
    var 
str str.split(" ");
    var 
= -1;
    
_root.itv setInterval(function (txt) {
        ++
i>=str.length clearInterval(_root.itv) : txt.text += str[i]+" ";
    }, 
msthis);
};
this.dein_txt.typeWriter(dein_str500); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 24-08-2006, 15:19   #6 (permalink)
05
 
Benutzerbild von gorgeous
 
Registriert seit: Nov 2004
Beiträge: 346
hi!

ja das hält sich so in grenzen!

danke, deine version funzt soweit super. allerdings hatte ich das jetzt wieder in htmlText geändert und seitdem bekomm ich pro zeile nur 1 wort.

ActionScript:
  1. TextField.prototype.typeWriter = function(str, ms) {
  2.     this.htmlText = "";
  3.     var str = str.split(" ");
  4.     var i = -1;
  5.     _root.itv = setInterval(function (txt) {
  6.         ++i>=str.length ? clearInterval(_root.itv) : txt.htmlText += str[i]+" ";
  7.     }, ms, this);
  8. };

eine idee wieso?

grüße, gorgeous
__________________
:)
gorgeous ist offline   Mit Zitat antworten
Alt 24-08-2006, 15:26   #7 (permalink)
................
 
Benutzerbild von Der Frager
 
Registriert seit: Jun 2004
Beiträge: 15.890
PHP-Code:
var dein_str "Hallo das ist ein Test. Sollte aber funzen...";
TextField.prototype.typeWriter = function(strms) {
    
this.text "";
    
this.html true;
    var 
temp =""
    
var str str.split(" ");
    var 
= -1;
    
_root.itv setInterval(function (txt) {
        ++
i>=str.length clearInterval(_root.itv) : temp += str[i]+" ";
        
txt.htmlText temp
    
}, msthis);
};
this.dein_txt.typeWriter(dein_str500); 
__________________

ternärer Konditionaloperator

+++ Bitte keine Privat-Nachrichten bezüglich Flashfragen! +++
Der Frager ist offline   Mit Zitat antworten
Alt 24-08-2006, 23:22   #8 (permalink)
05
 
Benutzerbild von gorgeous
 
Registriert seit: Nov 2004
Beiträge: 346
ja vielen dank funzt wunderbar!

allerdings versteh ich nicht so ganz wo definiert wird das halt der satz an seinen leerstellen getrennt wird. wie könnte man denn z.b. auslesen das bei einem <br> bzw halt dem zeilen ende getrennt wird?

grüße, gorgeous
__________________
:)
gorgeous ist offline   Mit Zitat antworten
Alt 24-08-2006, 23:28   #9 (permalink)
:Void
 
Benutzerbild von janoshnosh
 
Registriert seit: Jun 2005
Ort: börlin
Beiträge: 931
ActionScript:
  1. var str = str.split(" ");
split trennt bei dem zeichen bzw. der zeichenkette, das/die als erster parameter angegeben wird. split(" ") trennt also bei einem leerzeichen - split("<br>") würde bei einem html-zeilenumbruch trennen.

gruß janosch
janoshnosh ist offline   Mit Zitat antworten
Alt 26-08-2006, 01:49   #10 (permalink)
05
 
Benutzerbild von gorgeous
 
Registriert seit: Nov 2004
Beiträge: 346
ah ich hatte nicht dran gedacht das flash ja automatisch den zeilenumbruch vollzieht und mit <br> nur manuell.
deshalb dachte ich auch das es mit dem split("<br>") nicht funzt.

gibt es denn einen "split tag" um immer am zeilenende zu trennen damit zeile für zeile eingeblendet wird?

grüße, gorgeous
__________________
:)
gorgeous ist offline   Mit Zitat antworten
Alt 26-08-2006, 02:05   #11 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
bau dir doch selber einen ;o)
var str = str.split(" ");
enfernt ja die Leerstelle
temp += str[i]+" ";
setzt sie wieder dran.
D.h. wenn dein tag <hier_bitte_abschneiden_wenns_keine_umstände_macht > lautet, heißt deine split Anweisung:
PHP-Code:
var str str.split("<hier_bitte_abschneiden_wenns_keine_umstände_macht>"); 
die Beschreibung des Tags kann auch kürzer sein
__________________
mfg Frank

Geändert von mildesign (26-08-2006 um 02:07 Uhr)
mildesign ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an



Alle Zeitangaben in WEZ +1. Es ist jetzt 07:40 Uhr.

Domains, Webhosting & Vserver von Host Europe
Unterstützt das Flashforum!
Adobe User Group


Copyright ©1999 – 2012 Marc Thiele