Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 15-10-2002, 09:12   #1 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 23
automatisch generierte Textfelder

Hallo Flasher,

kann man textfelder automatisch generieren lassen mit z.B. duplicateMovieClip ?

Ich versuche folgendes umzusetzten:
Aus einer externen Datei wird ein Array ausgelesen.
Hat das array z.B. 50 Einträge sollen 50 Textfelder mit diesen Werten gesetzt werden und untereinander angezeigt werden.

Mit Filmsequenzen funktioniert das auch einwandfrei aber wie funktioniert das bei Textfeldern geht das überhaupt?

Wäre super wenn jemand helfen könnte!

Gruß Peterp
peterp ist offline   Mit Zitat antworten
Alt 15-10-2002, 09:14   #2 (permalink)
MMCP
 
Registriert seit: Jun 2001
Ort: Bayern
Beiträge: 892
Geht leicht - einfach eine Filmsequenz machen, die ein Textfeld enthält. Die Fimsequenz duplizieren und Deine Arrayvariable reinkopieren.

RR
__________________
aha!
Rudi Ratlos ist offline   Mit Zitat antworten
Alt 15-10-2002, 13:29   #3 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 23
Danke für die Antwort!

Leider weiß ich noch nicht so ganz wie ich die Array Inhalte z.B. bez[0]
bez[1]
bez[2]
usw...


den Textfelder die in der Filmsequenz liegen übergeben muss!

Wie funktioniert dass denn?


Danke und Gruß
Peterp
peterp ist offline   Mit Zitat antworten
Alt 15-10-2002, 15:00   #4 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
ActionScript:
  1. for(i=1;i<=20;i++){
  2. _root.mc.duplicateMovieClip(["mc"+i],i);
  3. _root.mc.textfeld=_root.text[i];
  4. }
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 15-10-2002, 15:23   #5 (permalink)
Problemlöser
 
Registriert seit: Oct 2002
Ort: Chile.... aber jetzt Berlin :P... und Morgen?
Beiträge: 117
ich glaub dein code müsste so sein GEO:

for(i=1;i<=20;i++){
_root.mc.duplicateMovieClip("mc"+i, i);
_root["mc" + i].textfeld = _root.text[i];
}

.... .....

Geändert von MoniThor (15-10-2002 um 15:24 Uhr)
MoniThor ist offline   Mit Zitat antworten
Alt 15-10-2002, 15:34   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 23
Danke! GEO

So das steht jetzt da, irgendwo hab ich noch nen dreher drin

i = 0;
start = 0;
ende = 10;
bez = new Array();
for (i=start; i<=ende; i++) {
bez[i] = i;
trace (bez[i]);
_root.mc.duplicateMovieClip("mc"+i, i);
_root["mc" + i].textfeld = _root.text[i];

}

Wie muss die Filmsequenz heissen, bin noch nicht so fit mit Flash AS? und was muss ich bei Variable des textfeldes setzen text?

Danke
Peterp
peterp ist offline   Mit Zitat antworten
Alt 15-10-2002, 16:16   #7 (permalink)
Nub
 
Benutzerbild von Hehler
 
Registriert seit: Aug 2002
Beiträge: 357
Wie du die einzelnen Variablen und Objekte nennst ist vollkommen dir überlassen , du musst lediglich darauf achten , dich an deine eigenen Namen zu halten .

Ich hab' dein Skript abgewandelt , indem ich allem einen passenden Namen gegeben habe , und kommentiert :
ActionScript:
  1. i = 0; // des hier ist vollkommen nutzlos , da du's unten sowieso neu angibst
  2. start = 0; // desselbe wie bei i
  3. ende = 10; // in deinem Fall unsinnig , da des immer gleichviele Textfelder generiert und nich soviele , wie der Array Elemente hat
  4. _root.Satz = new Array();// sicher auch unnotwendig , da du deinen Array importieren willst , und nich neu erstellen
  5. for ( i=0 ; i <= _root.Satz.length ; i++) { // optimale Lösung , da die geringst mögliche Anzahl an Berechnungen ausgeführt wird , und keine zusätzlichen Variablen erstellt werden
  6. _root.Satz[i] = i; // vollkommen unsinnig , da somit deine Textfelder einfach nur durchnumeriert werden
  7. trace (_root.Satz[i]); // trace halt :]
  8. _root.Wort.duplicateMovieClip("Wort_"+i, i); // ein neues indiziertes Textfeld
  9. _root["Wort_" + i].Text = _root.Satz[i]; // in's Textfeld wir das entsprechende Array-Element geschrieben
  10. }
Satz ist der Array den du verwendest , Wort sind die Filmsequenzen mit den Textfeldern , Text sind die Inhalte der Textfelder
Ich persönlich hätte das ganze so geschrieben :
ActionScript:
  1. this.loadVariables("Quelle.txt"); // In dieser Datei befindet sich des Array in Form eines Strings (z.B. Satz=Hallo |Welt , |Ich |bin's)
  2. Satz=Satz.split("|"); // Aus dem String wird des Array , desde willst
  3. for (var i = 0 ; i < Satz.length ; i++) {
  4. _root.Wort.duplicateMovieClip("Wort_"+i, i);
  5. _root["Wort_" + i].Text = Satz[i];
  6. _root["Wort_" + i]._x = 50 // die 50 ist durch den richtigen X-Wert zu ersetzen
  7. _root["Wort_" + i]._y += i*_root["Wort_" + i]._height;
  8. }
Hoffe , geholfen zu haben
__________________

Wozu Freiheit ?

"Eine gute Theorie ist das Praktischste, was es gibt."
Gustav Robert Kirchhoff (1827-87), dt. Physiker

"Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so."
Douglas Adams
Hehler ist offline   Mit Zitat antworten
Alt 15-10-2002, 16:51   #8 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 23
Hallo Hehler,
hab das ganze mal nach deinem Prinzip umgesetzt aber leider funkt es immer noch net, magst mal die Datei ansehen ?

Wäre supi vielleicht kannst meinem denkfehler auf die Sprünge helfen!

Danke PeterP
Angehängte Dateien
Dateityp: zip flashtest.zip (4,5 KB, 24x aufgerufen)
peterp ist offline   Mit Zitat antworten
Alt 15-10-2002, 17:49   #9 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
das AS auf dein mc Wort:

ActionScript:
  1. onClipEvent(load){
  2. _root.loadVariables("Quelle.txt");
  3. }
  4. onClipEvent(enterFrame){
  5. Satzar = _root.Satz.split("|");
  6. for (i=0; i<Satzar.length; i++) {
  7.     _root.Wort.duplicateMovieClip("Wort"+i, i);
  8.     _root["Wort"+i].Text = Satzar[i];
  9.     _root["Wort"+i]._x = 50;
  10.     _root["Wort"+i]._y += i*_root["Wort"+i]._height;
  11. }
  12. }

und das in die txt :

&Satz=Hallo |Welt |Ich |bin's|!

!
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 15-10-2002, 17:55   #10 (permalink)
Nub
 
Benutzerbild von Hehler
 
Registriert seit: Aug 2002
Beiträge: 357
1. Bei meinem Skript bin ich davon aus gegangen , dass die Ursprungssequenz den Ursprungs-Y-Wert hat (z.B. 50) , wenn das nicht der Fall ist , wie bei dir , muss des angeglichen werden - bei dir würden das erste Wort außerhalb der Bühne liegen
2. Die Ursprungssequenz in meinem Skript hieß "Wort" , nicht "Wort_i" : "_root.Wort.duplicateMovieClip("Wort_"+i, i);"
3. In deiner "Quelle.txt" stand die Variable "atz" statt der Variable "Satz"
4. Wenn Flash eine String-Variable oder ein Array mit Namen "Satz" hat , funktioniert nach diesen Änderungen alles bestens
5. In deiner Datei funktioniert des loadVariables nicht , frag' mich nicht , warum

Könnte sich mal jemand die .fla ansehen - ich find' den Fehler nämlich nich
__________________

Wozu Freiheit ?

"Eine gute Theorie ist das Praktischste, was es gibt."
Gustav Robert Kirchhoff (1827-87), dt. Physiker

"Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so."
Douglas Adams
Hehler ist offline   Mit Zitat antworten
Alt 15-10-2002, 18:00   #11 (permalink)
Nub
 
Benutzerbild von Hehler
 
Registriert seit: Aug 2002
Beiträge: 357
@_geo_
Des Skript wird doch viel zu viel rechnen , schließlich werden ständig die Filmsequenzen dupliziert - oder täusche ich mich ?
__________________

Wozu Freiheit ?

"Eine gute Theorie ist das Praktischste, was es gibt."
Gustav Robert Kirchhoff (1827-87), dt. Physiker

"Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so."
Douglas Adams
Hehler ist offline   Mit Zitat antworten
Alt 15-10-2002, 18:15   #12 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
warum 1 mal dupliziert und fertig ! (wenn es eine endlosschleife wäre oder die Berechnung mehr als 20 sek beanspruchen, würde flash sowieso abbrechen ) !
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 15-10-2002, 20:47   #13 (permalink)
Nub
 
Benutzerbild von Hehler
 
Registriert seit: Aug 2002
Beiträge: 357
Zitat:
ActionScript:
  1. onClipEvent(load){
  2.         _root.loadVariables("Quelle.txt");
  3. }
  4. onClipEvent(enterFrame){
  5.         Satzar = _root.Satz.split("|");
  6.         for (i=0; i<Satzar.length; i++) {
  7.                 _root.Wort.duplicateMovieClip("Wort"+i, i);
  8.                 _root["Wort"+i].Text = Satzar[i];
  9.                 _root["Wort"+i]._x = 50;
  10.                 _root["Wort"+i]._y += i*_root["Wort"+i]._height;
  11.         }
  12. }
Bei duplicateMovieClip werden doch alle Skripte mit kopiert , d.h. jede duplizierte Filmsequenz wird erstmal die Quelle.txt laden und dann bei jedem Bildwechsel wieder alle Sequenzen erstellen , die schon die erste erstellt hat . Und wenn Flash abbricht werden gar keine Skripte mehr ausgeführt , und das ist dann ziemlicher Mist - sag' mir bitte , wenn ich mich irre
__________________

Wozu Freiheit ?

"Eine gute Theorie ist das Praktischste, was es gibt."
Gustav Robert Kirchhoff (1827-87), dt. Physiker

"Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so."
Douglas Adams
Hehler ist offline   Mit Zitat antworten
Alt 16-10-2002, 08:27   #14 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Munich
Beiträge: 23
Smile

Hallo _geo_ und Hehler,

erstmal danke für eure Mühe! Es funktioniert!

Nur hab ich da auch noch ein anderes Problem

Ich würde ganz gerne den Variablen der Textfelder neue Variablen setzten.

Wie z.B. Standard Variable des Textfeldes Text soll ersetzt werden mit
Produkt_1
Produkt_2
Produkt_3
Produkt_4
usw..........

leider funktioniert

_root["Wort_"+i].Text[i] = Satz[i];

nicht!


Danke Gruß
PeterP
peterp ist offline   Mit Zitat antworten
Alt 16-10-2002, 08:41   #15 (permalink)
Nub
 
Benutzerbild von Hehler
 
Registriert seit: Aug 2002
Beiträge: 357
Text is ken Array , folglich muss des so heißen :
_root["Wort_"+i].Text = Satz[i];
__________________

Wozu Freiheit ?

"Eine gute Theorie ist das Praktischste, was es gibt."
Gustav Robert Kirchhoff (1827-87), dt. Physiker

"Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so."
Douglas Adams
Hehler 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 16:25 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele