Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 06-10-2005, 08:46   #1 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 8
Question Bug in digichar() Function

Hallo zusammen
Ich habe vor einer Weile eine Funktion geschrieben mit der ich text typewriter ähnlich mit einem kleinen Effekt in ein Textfeld schreiben lassen kann. Dies funktioniert auch soweit. Jedoch ab und zu "hängt" die Funktion in einer Endlos schleife und der letzte buchstabe loopt ins endlose. Wenn dieser Bug auftritt wird bei weiterem aufruf der Funktion der String der zuvor übergeben wurde verwendet, anstatt der neue. Dabei sollten die Variablen die der Funktion übergeben werden dank des prototype konstrukts ja einzigartig sein. Kann mir jemand helfen?

Cheers

PHP-Code:
TextField.prototype.digichar = function(speedstr) {
    
this.autoSize true;
    
this.0;
    
this.pos 1;
    
this.ziel this;
    
this.charsave "";
    
///////////////////////// 
    
var settext = function (zielstr) {
        var 
fxstring1 "9C3";
        var 
fxstring2 "4R5";
        var 
fxstring3 "8T2";
        var 
fxstring4 "O69";
        var 
fxstring5 "1E7";
        var 
zufall = (random(5)+1);
        
ziel.text ziel.charsave+eval("fxstring"+zufall).substr(ziel.i1);
        if (
ziel.== fxstring1.length) {
            
ziel.0;
            
ziel.text ziel.charsave=str.substr(0ziel.pos);
            
ziel.pos++;
            if (
ziel.pos>=str.length+1) {
                
clearInterval(ziel.myinterval);
            }
        }
        
ziel.i++;
    };
    
/////////////////////////// end function 
    
this.myinterval setInterval(settextspeedthis.zielstr);
}; 

Geändert von lightforce (06-10-2005 um 12:58 Uhr)
lightforce ist offline   Mit Zitat antworten
Alt 06-10-2005, 12:47   #2 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Wenn du hier Scripte veröffentlichst, setz sie bitte zwecks besserer Lesbarkeit in Code- oder AS-Tags...

Wie rufst du die Funktion auf? Ich hab hier beim Testen keine Probs...
  Mit Zitat antworten
Alt 06-10-2005, 13:30   #3 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 8
digichar()

Hallo Holger

Ich rufe die Funktion mit mytextfield.digichar(25,"Welcome"); auf.
Das sonderbare ist, dass es vielleicht 20 mal funktioniert und dann einmal nicht. Ich kann mir das echt nicht erklären. Das Problem scheint nicht zur laufzeit der Funktion zu entstehen sondern bei der Initialisierung der Funktion beim starten der swf. Denn wenn die swf läuft und die Funktion wie sie soll funktioniert, dann tut sie das auch bei jedem aufruf während dieser Laufzeit. Allerdings wenn sie nicht richtig funktioniert beim ersten Aufruf dann tut sies bei den andern Aufrufen auch nicht. Es scheint als ob Flash irgendwie ein Problem mit dem Gültigkeitsbeich innerhalb der verschachtelten Funktion hat und irgend eine Variable "vergisst" und infolge dessen der Interval nie unterbrochen wird. Vielleicht hat es auch etwas mit der Asynchronität von Flash zu tun. Blöderweise hat es natürlich genau dann nicht funktioniert als der Kunde die Website angeschaut hat.

Hast du irgendeine Ahnung? Soll ichs vielleicht mal mit onEnterFrame anstatt mit setInterval versuchen?

Gruss Lightforce

Geändert von lightforce (06-10-2005 um 13:34 Uhr)
lightforce ist offline   Mit Zitat antworten
Alt 06-10-2005, 20:26   #4 (permalink)
agedoubleju
Gast
 
Beiträge: n/a
Ich habs jetzt mal im Testmodus laufen lassen, weil der viel Performance abzweigt. Hinter den clearInterval habe ich einen erneuten Start der Funktion gesetzt und das ganze mehrere Minuten ohne Probleme laufen lassen...

Setz mal hinter alle Variablen trace-Befehle und lass dir kontinuierlich die Variableninhalte im Testmodus (STRG-ENTER) ausgeben, vielleicht zeigt sich dann ja der Bug. Evtl. hilft es auch, die speed des Intervalls hochzusetzen, z.B. von 25 auf 40 (entspricht 25 FPS).

Geändert von agedoubleju (06-10-2005 um 20:27 Uhr)
  Mit Zitat antworten
Alt 11-10-2005, 17:45   #5 (permalink)
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 8
digichar()

Das Problem scheint irgendwie nur in mx aufzutreten.
Ich denke ich lass die Funktion mal so wie sie ist.
Vielen Dank Holger für deine Hilfe!
lightforce 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 23:50 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele