Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 05-09-2004, 18:47   #1 (permalink)
neuling
 
Registriert seit: Aug 2004
Beiträge: 198
Schreibmaschineneffekt zu schnell

Hallo

Ich habe folgenden kleinen Schreibmaschineneffekt in AS gecodet. Er
funktioniert im Prinzip, doch das ganze ist so schnell daß mans gar nicht mitbekommt.
Die Funktion besitzt zwei Werte : 1. der Textinahlt, 2. verweist auf eine Instanz eines dynamischen Textobjektes.

Kann mir vielleicht jemand helfen das ganze etwas einzubremsen?

mfg
Clemens



function typewriter(typetext,ziel){
laenge=typetext.length;
for (j=0; j<laenge; j++) {
anzeige = typetext.substr(0,j)+"_";
_root[ziel].text = anzeige;
trace(anzeige);
};
};

typewriter("TesttextTesttext","Bildtitel");
Clemenses ist offline   Mit Zitat antworten
Alt 05-09-2004, 18:53   #2 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 2.051
gibt zwar bessere lösungen, aber auf die schnelle warum nicht mit setInterval?
kuma ist offline   Mit Zitat antworten
Alt 05-09-2004, 18:55   #3 (permalink)
neuling
 
Registriert seit: Aug 2004
Beiträge: 198
naja weil ich mich mit setInterval nicht auskenn, wie würde ichs damit machen?

mfg
Clemens
Clemenses ist offline   Mit Zitat antworten
Alt 05-09-2004, 19:01   #4 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 2.051
sooory vergiss, das setInterval, würde zwar funktionieren ist jedoch glaube ich hier zuviel!

ist so wohl der bessere weg :
String Objekt - Typewriter & Newsticker

die variable zeichen kannste ja jetzt noch verändern! warte ich bastel mal was!
kuma ist offline   Mit Zitat antworten
Alt 05-09-2004, 19:03   #5 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
PHP-Code:
//mit enterFrame
my_array = new Array()
text "der text der geschrieben werden soll"
my_array text.split("");
count 0
_root
.onEnterFrame = function() {
   
i++
   if (
i==5) {    //wie höher, desto langsamer
       
output += my_array[count++];
       
i=0
   
}

PHP-Code:
//mit setInterval
function typer(zieltxtspeed) {
    
my_array = new Array()
    
text txt
    my_array 
text.split("");
    
count 0
    inter 
setInterval(function() {
                                 
ziel.text += my_array[count++]
                                 if (
count == my_array.length) {
                                     
clearInterval(inter);
                                 }
                                 }, 
speed);

__________________
www.johannes-erhardt.com | blog | xing me baby

Geändert von FLASHStyler (05-09-2004 um 19:09 Uhr)
FLASHStyler ist offline   Mit Zitat antworten
Alt 05-09-2004, 19:05   #6 (permalink)
Neuer User
 
Registriert seit: Mar 2002
Beiträge: 2.051
Code:
if (kuma._geschwindigkeit < flashstyler._geschwindigkeit){
trace ("flashstyler war schneller")
}


Geändert von kuma (05-09-2004 um 19:07 Uhr)
kuma ist offline   Mit Zitat antworten
Alt 05-09-2004, 19:09   #7 (permalink)
FlashLove@FirstSight
 
Benutzerbild von FLASHStyler
 
Registriert seit: Feb 2003
Beiträge: 2.460
__________________
www.johannes-erhardt.com | blog | xing me baby
FLASHStyler ist offline   Mit Zitat antworten
Alt 05-09-2004, 19:31   #8 (permalink)
mod_rewrite
 
Benutzerbild von sonar
 
Registriert seit: Feb 2003
Ort: München
Beiträge: 15.621
Dann hätt ich auch noch einen...
(warum so umständlich mit Array und so...?)
ActionScript:
  1. function typewriter(typetext, ziel) {
  2.     var i = 0;
  3.     var typeID = setInterval(function () {
  4.         if (i < typetext.length) {
  5.             ziel.text += typetext.charAt(i++);
  6.         } else {
  7.             clearInterval(typeID);
  8.         }
  9.     }, Math.random() * 300 + 100);
  10. }
  11. typewriter("Hello Typewriter", txt);
Aber was wir jetzt nicht drin haben, is das "_"... Dazu fiel mir jetzt auch nix ein...

edit:
Vielleicht noch zur Erklärung für Clemenses: Die Anzeige wird erst dann aktualisiert, wenn eine for- oder while-Schleife abgearbeitet is, deswegen siehst du die Änderung nicht schrittweise...
__________________
RTFM
Wie man Fragen richtig stellt.

Achim Bindannmalweg

Money makes the world go round, fear makes it turn much faster.
(New Model Army)

Geändert von sonar (05-09-2004 um 19:35 Uhr)
sonar ist offline   Mit Zitat antworten
Alt 05-09-2004, 21:05   #9 (permalink)
neuling
 
Registriert seit: Aug 2004
Beiträge: 198
Hi

Danke vielmals
Das mit den Intervals ist schon eine recht interessante Sache.
Ich habe das ganze noch ein bißchen erweitert sodaß vorher
noch der vorhandene Text gelöscht wird.

mfg
Clemens

function typewriter(typetext, ziel) {
var j = 0;
var zeichen = ziel.text.length
var löschen = setInterval(function () {
if (j < zeichen + 1) {
ziel.text = ziel.text.substr(0,zeichen - j);
j++;
} else {
clearInterval(löschen);
var i = 0;
var schreiben = setInterval(function () {
if (i < typetext.length) {
ziel.text += typetext.charAt(i++);
} else {
clearInterval(schreiben);
}
}, 75);
}
}, 25);


}

button.onRelease = function () {

typewriter("Text weg und wieder da", test)
};
Clemenses 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 04:24 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele