Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 13-08-2004, 16:24   #1 (permalink)
lernwillig
 
Benutzerbild von Bugfixer
 
Registriert seit: May 2004
Ort: Berlin
Beiträge: 221
Question function lässt sich nicht 2x aufrufen

Hi,

folgendes Problem.
Sobald ich meine function 2x aufrufe, da ich den texteffekt auf mehrer textfelder anwenden will, mixt er mir den output beider aufrufe. Ganz seltsam.
Was muss ich machen, damit ich die function mehrfach aufrufen kann.

Code:
/*simple text effect*/
textfield.prototype.deCript = function(myMsg) {
	var crpt;
	var tf = this;
	tf.html = true;z
	tf.autoSize = true;
	tf.msg = myMsg;
	var lung = tf.msg.length;
	for (var a = 0; a<lung; a++) {
		crpt += String.fromCharCode(33+Math.round(Math.random()*90));
	}
	var id = setInterval(doIt, 40);
	function doIt() {
		var trimmed;
		var cripted = new String(crpt);
		var newString = new String(tf.msg);
		if (i<=tf.msg.length-1) {
			sliced = newString.slice(i, i+1);
			deCrip += sliced;
			i++;
			var trimmed1 = cripted.substr(i, lung);
			for (var k = 0; k<trimmed1.length; k++) {
				trimmed += String.fromCharCode(33+Math.round(Math.random()*90));
			}
			tf.htmlText = "<p align='left'><font face='Arial' size='9' color='#000000'>"+deCrip+trimmed+"</font></p>";
		}
		if (deCrip == tf.msg) {
			clearInterval(id);
		}
	}
};

message1 = "Testtext Nummer 1";
message2 = "Testtext Nummer 2";

this.createTextField("myTxt1", 1, 0, 0, 1, 1);
this.createTextField("myTxt2", 2, 0, 20, 1, 1);


myTxt1.deCript(message1);
myTxt2.deCript(message2);
Code einfach ins erste Keyframe pasten.


Vielen dank für eure Hilfe

Gruss Fabian
Bugfixer ist offline   Mit Zitat antworten
Alt 13-08-2004, 19:06   #2 (permalink)
helpQLODhelp
 
Benutzerbild von bokel
 
Registriert seit: Feb 2002
Ort: Köln
Beiträge: 8.505
Hi Fabian,
es hat lange gedauert, bis ich kapiert habe, wie deine Funktion funktioniert
Aber dann habe ich es rausbekommen und sie ein bißchen aufgeräumt.
Hier ist das Ergebnis.

ActionScript:
  1. TextField.prototype.deCript = function( myMsg) {
  2.     this.autoSize = true;
  3.     //
  4.     var i = 0;
  5.     var onInterval = function ( tf) {
  6.         if ( i < myMsg.length) {
  7.             var result = myMsg.substr(0, ++i);
  8.             var len = myMsg.length - i;
  9.             for (var k = 0; k<len; k++) {
  10.                 result += String.fromCharCode(ord(" ") + 1 + Math.round(Math.random()*90));
  11.             }
  12.             //
  13.             tf.text = result;
  14.         }
  15.         if ( i >= myMsg.length) {
  16.             clearInterval(id);
  17.         }
  18.     }
  19.     var id = setInterval( onInterval, 40, this);
  20. };
  21.  
  22. var message1 = "Testtext Nummer 1";
  23. var message2 = "Testtext Nummer 2";
  24.  
  25. this.createTextField("myTxt1", 1, 0, 0, 1, 1);
  26. this.createTextField("myTxt2", 2, 0, 20, 1, 1);
  27.  
  28. var fmt = new TextFormat('Arial',9);
  29. myTxt1.setTextFormat( fmt);
  30. myTxt2.setTextFormat( fmt);
  31.  
  32. myTxt1.deCript(message1);
  33. myTxt2.deCript(message2);

mfg r.
bokel ist offline   Mit Zitat antworten
Alt 13-08-2004, 19:12   #3 (permalink)
lernwillig
 
Benutzerbild von Bugfixer
 
Registriert seit: May 2004
Ort: Berlin
Beiträge: 221
Oh my god

Das nen ich mal optimieren.
Ich kann dir gar nicht sagen wie dankbar ich dir bin.

Du rettest mir damit mein wochenende

Grüsse

Fabian
Bugfixer 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 13:29 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele