Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 18-07-2004, 12:03   #1 (permalink)
Halbwissender
 
Benutzerbild von r2-d2
 
Registriert seit: Jul 2002
Ort: Leipzig
Beiträge: 184
Fading von mehreren textFields

Hallo Gemeinde,

mein Problem ist, ich möchte mehrere Textfelder zeitgleich ausblenden.
Mit einem einzelnen klappt das prima.

Das Schema war folgendes:

function fader()
{
_root[currentField]._alpha = _root[currentField]._alpha-1;

if (_root[currentField]._alpha<=0)
{
clearInterval(tmp_interval);
}

}
var tmp_interval
var currentField = "meinTextDni";
tmp_interval = setInterval(fader,20);

Nun gibt es aber nicht nur ein Feld sondern viele.
Die sollen dann in einem Array stehen. z.B.
currentField= new Array();
und dann möchte ich alle Textfelder gleichzeitig ausblenden. Dummerweise habe ich nur eine tmp_intervall.

Was ist da die eleganteste Lösung?
Alle textfelder nacheinander (mit Überschneidung vielleicht noch) wäre noch cooler.
Weiß jemand Rat?
Wäre super.
__________________
:) Möge die Macht mit Dir sein.

XING/openBC
r2-d2 ist offline   Mit Zitat antworten
Alt 18-07-2004, 12:23   #2 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
nacheinander...?

zeitgleich?

zeitgleich:
in der funktion...

ActionScript:
  1. for(var i=0; i< dein_textfeld_array.length; i++){
  2.        var tf = dein_textfeld_array[i];
  3.        _root[tf]._alpha -=1;
  4.        // oder
  5.       //tf._alpha -=1;
  6. }

jetzt hast du aber ein prob...
das geht auf die performance, wie´d sau mehrere objekte mit alpha faden...


nacheinander könnte so gehen...

wieder dein array...

ActionScript:
  1. tfArr =[textfeld1, textfeld2, textfeld3]; // als bsp
  2.  
  3. function fader(){
  4.     if(_root.isActive == undefined) _root.isActive=0;
  5.  
  6.     var num = _root.isActive;
  7.     var obj = _root.tfArr[num];
  8.     obj._alpha -=1;
  9.    
  10.     if(obj._alpha <= 0) _root.isActive +=1 ;
  11.  
  12.     if(num == ((_root.tfArr.length)-1) && obj._alpha <= 0) clearInterval(intval), delete intval;
  13.  
  14. }
  15.  
  16. intval = setInterval(fader, 20);


so sollte das funktionieren, wenn du im array die textfelder als obejkt drin hast und nicht nur den stringnamen...

gib mal bescheid...


das nacheinander hat auch den vorteil, dass immer nur EIN obejkt gefadet wird...und nicht mehrere...


greetz


kelor
kelor ist offline   Mit Zitat antworten
Alt 18-07-2004, 12:57   #3 (permalink)
Halbwissender
 
Benutzerbild von r2-d2
 
Registriert seit: Jul 2002
Ort: Leipzig
Beiträge: 184
Also die Variante mit dem gleichzeitig funzt primstens.
Und da bei mir ohnehin nur vielleicht 20 gleiche Buchstaben auftreten, scheint das nicht soooo dramatisch zu sein.
Mein Rechner ist nicht sonderlich ausgelastet.

Ich danke wie verrückt.
Variante 2 muss ich erst einmal versuchen zu verstehen. Ich weiß gar nicht, wie man in ein Array Objekte bekommt.

Geht das mit Arrayname.push(_root.["so heisst es" add i]);
oder habe ich damit nur den String, wie Du sagst, verewigt?

Jetzt suche ich nur noch einen, der auch versteht, warum die erste Textzeile bei mir immer wieder verschwindet. Die Frage steht auch hier im Forum. Das ist mir auch zu hoch.

Der Thread steht hier:
Warum verschwinden Textfelder
__________________
:) Möge die Macht mit Dir sein.

XING/openBC
r2-d2 ist offline   Mit Zitat antworten
Alt 18-07-2004, 13:04   #4 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
yep..mit push kannst du das machen...
und wenn du das so hast, wie du getippt hats, also:

_root['irgendeinname'+i]


dann hast du das textfeldobjekt inkl. pfad inm array und kannst es mit

arrayname[index] ansprechen...

ich würde an deiner stelle das 'add' durch das modernere '+' ersetzen...

'add' ist flash4 syntax...


bez. des anderen probs kann ich dir net viel sagen, da müsste man genauer anch forschen, woran das liegen könnte...

greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 18-07-2004, 13:48   #5 (permalink)
Halbwissender
 
Benutzerbild von r2-d2
 
Registriert seit: Jul 2002
Ort: Leipzig
Beiträge: 184
cool, ich werd es probieren.

Mittlerweile faden die richtigen Buchstaben auf Tastenknopf aus/ein.
Aber warum meine erste Textzeile weg ist, ist mir noch unklar.
Ich dachte gerade, vielleicht fängt ja bei Flash ein Array nicht mit 0 an. Aber in myText[0] steht die erste Zeile drin.??
__________________
:) Möge die Macht mit Dir sein.

XING/openBC
r2-d2 ist offline   Mit Zitat antworten
Alt 18-07-2004, 14:01   #6 (permalink)
querdenker
 
Benutzerbild von kelor
 
Registriert seit: Jun 2001
Ort: formel1-stadt hockenheim
Beiträge: 4.731
argghhhh...weist de wieso die erste zeile weg iss?

du überschreibst sie...und zwar damit...

_root.createTextField(instanzDni, i, 12*i+50, 50+(j*20), 30, 30);

da du ja 2 texte hast läufst du 2 mal durch i durch...und löschst den ersten string, da die textfelder dazu auf der gleichen eben liegen...

die werden einfach überschrieben...

ändere mal die zeile in:

ActionScript:
  1. //vor der schleife:
  2. var ebene = 1;
  3. _root.createTextField(instanzDni, ++ebene, 12*i+50, 50+(j*20), 30, 30);

dann hast du auch jedes textfeld auf ner eigenen ebene liegen...und deine erste u´zeile sollte auch bweider da sein...


greetz

kelor
kelor ist offline   Mit Zitat antworten
Alt 18-07-2004, 23:31   #7 (permalink)
Halbwissender
 
Benutzerbild von r2-d2
 
Registriert seit: Jul 2002
Ort: Leipzig
Beiträge: 184
ich danke Dir...

Das mit dem i habe ich mittlerweile dank debugger auch rausbekommen.
Jetzt steht meinem eigenen Galgenraten nichts mehr im Wege.
__________________
:) Möge die Macht mit Dir sein.

XING/openBC
r2-d2 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 09:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele