Zurück   Flashforum > Flash > ActionScript > Softwarearchitektur und Entwurfsmuster

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 14-03-2003, 11:13   #1 (permalink)
www.penck.de
 
Benutzerbild von borisp
 
Registriert seit: Jan 2002
Ort: Wiesbaden / Mainz-Kastel
Beiträge: 926
OOP: Text auf Textfelder ohne Scroller verteilen

Angenommen man hat einen Text, der nicht in ein Textfeld ohne Scroller passt, der auf mehrere Textfelder aufgeteilt werden soll.

Zum Beispiel erstelle ich 3 Textfelder:

Instanzname: tA Variable: A
Instanzname: tB Variable: B
Instanzname: tC Variable: C

Klasse:
ActionScript:
  1. Object.prototype.splitText = function() {
  2.    
  3.     this.elements = new Array();
  4.  
  5.     for(e = 0; e <= arguments.length-1; e++) {
  6.         if((typeof arguments[e].variable) != undefined) {
  7.             this.elements[this.elements.length] = arguments[e]; 
  8.         }
  9.     }
  10.  
  11. }
  12. splitText.prototype.setText = function(myText) {
  13.  
  14.     firstFieldVar =  this.elements[0].variable;
  15.     _root[firstFieldVar] = myText;
  16.  
  17.     lastFieldVar = firstFieldVar;
  18.  
  19.     for(txtField = 0; txtField <= this.elements.length-1; txtField++) {
  20.         newFieldVar = this.elements[txtField+1].variable;
  21.         fieldRows = this.elements[txtField].maxscroll;
  22.         while(fieldRows > 1) {
  23.             _root[newFieldVar] = _root[lastFieldVar].substr(_root[lastFieldVar].lastIndexOf(" "))+_root[newFieldVar];
  24.             _root[lastFieldVar] = _root[lastFieldVar].substr(0,_root[lastFieldVar].lastIndexOf(" "));
  25.             fieldRows = this.elements[txtField].maxscroll;
  26.         }
  27.         lastFieldVar = this.elements[txtField+1].variable;
  28.     }
  29. }

Wenn ich nun eine Variable "Foo" habe:

ActionScript:
  1. Foo = "Dies ist ein langer Text [...] der nach dem Script auf die 3 Boxen aufgeteilt werden soll. ";

dann kann ich diesen Text mittels folgendem Aufruf auf die 3 TextFelder aufteilen:

ActionScript:
  1. // Argumente sind die Textfeldinstanzen (nicht begrenzt auf nur 3)
  2. myText = new splitText(_root.tA,_root.tB,_root.tC);
  3. // Textvariable an das Object übergeben
  4. myText.setText(Foo);

Als Beispiel noch ein FLA im Anhang.

Das Prinzip:

Erst wird alles in das erste Feld kopiert, dann der reihe der argumente nach immer das letzte Wort im Text in das nächste Textfeld verschoben, bis das erste Textfeld beim minimum von maxscroll angekommen ist. Danach das nächste Feld, und so weiter.

Wenns mal jemand braucht...
Angehängte Dateien
Dateityp: zip textaufteilung.zip (2,5 KB, 316x aufgerufen)

Geändert von borisp (14-03-2003 um 11:14 Uhr)
borisp ist offline   Mit Zitat antworten
Alt 14-03-2003, 11:22   #2 (permalink)
aron ? da : weg
 
Benutzerbild von Aron
 
Registriert seit: Aug 2001
Ort: Berlin
Beiträge: 410
Thumbs up

Textfelder vernüpfen wie in Freehand und Quark. Klasse. *daumenhoch*
Aron ist offline   Mit Zitat antworten
Alt 14-03-2003, 11:36   #3 (permalink)
. . . . . . . . . . . . .
 
Benutzerbild von Kha_Kee
 
Registriert seit: Jun 2001
Ort: Bochum
Beiträge: 288
Thumbs up

jau, vielen Dank!

sowas hab ich echt schon gesucht!

Kha_Kee ist offline   Mit Zitat antworten
Alt 14-03-2003, 15:11   #4 (permalink)
Neuer User
 
Benutzerbild von Pingu
 
Registriert seit: Nov 2001
Beiträge: 2.089
klasse, borisp, haust die sachen ja raus wie nix

Aber: was mir aufgefallen ist, man könnte das Leerzeichen am Anfang der neuen Box weglassen..sähe einheitlicher aus.

Gruss
__________________

'n altes Game
neu entdeckt *g*
Reine
Pingu ist offline   Mit Zitat antworten
Alt 14-03-2003, 16:14   #5 (permalink)
www.penck.de
 
Benutzerbild von borisp
 
Registriert seit: Jan 2002
Ort: Wiesbaden / Mainz-Kastel
Beiträge: 926
Ah ja, das Leerzeichen das sollte ja weniger das Problem sein
borisp ist offline   Mit Zitat antworten
Alt 14-03-2003, 16:54   #6 (permalink)
LastActionScriptHero
 
Benutzerbild von k7c4
 
Registriert seit: Apr 2002
Beiträge: 572
Wirklich cool, was momentan von Dir kommt, borisp.

Scheinst wohl nicht gerade in Aufträgen zu ertrinken jetzt und hier, oder? Wenn, dann
__________________
All your AS are belong to us! haha!
Beweise heute Deine Tierliebe: Schlage nie ein totes Pferd!
k7c4 ist offline   Mit Zitat antworten
Alt 14-03-2003, 17:01   #7 (permalink)
www.penck.de
 
Benutzerbild von borisp
 
Registriert seit: Jan 2002
Ort: Wiesbaden / Mainz-Kastel
Beiträge: 926
Auträge? Das passt schon alles wie es im Moment ist, dennoch muss man immer mal ein wenig Pause machen - und da beschäftige ich mich im Moment halt sehr gerne mit MX Das meiste davon was ich hier poste ensteht sowieso Nachts und wird Tagsüber inner freien Minute gepostet.
borisp ist offline   Mit Zitat antworten
Alt 14-03-2003, 17:23   #8 (permalink)
Neuer User
 
Benutzerbild von Pingu
 
Registriert seit: Nov 2001
Beiträge: 2.089
na, solange du dann nich so wie dein avatar aussiehst:

mehr mehr mehr
__________________

'n altes Game
neu entdeckt *g*
Reine
Pingu ist offline   Mit Zitat antworten
Alt 14-03-2003, 23:39   #9 (permalink)
www.penck.de
 
Benutzerbild von borisp
 
Registriert seit: Jan 2002
Ort: Wiesbaden / Mainz-Kastel
Beiträge: 926
Ein wenig mehr Haare hab ich noch
borisp ist offline   Mit Zitat antworten
Alt 09-04-2003, 23:23   #10 (permalink)
.
 
Benutzerbild von SunboX
 
Registriert seit: Sep 2002
Ort: Auerbach / Mittweida
Beiträge: 912
Funzt bei mir mit verschachtelten mc´s nicht. Mein Fehler?
(z.B. myText = new splitText(_root.content.irgendwas.tA,_root.content .irgendwas.tB))

Hatte mir das so gedacht:

ActionScript:
  1. _______  __________________
  2.        |      | |                 |
  3.        | Bild | |    TextFeld A   |
  4.        |______| |_________________|
  5.          ___________________________
  6.        |                          |
  7.        |        TextFeld B        |
  8.        |__________________________|

Ciao SunboX
__________________
..:: mein weblog ::.. ..:: meine homepage ::.. ..:: VisualDRUGS ::..
Zitat:
Geschrieben von emax
iterativ arbeiten ist menschlich, rekursiv dagegen göttlich :D
Künstliche Intelligenz ist leichter zu ertragen, als natürliche Dummheit!

Geändert von SunboX (09-04-2003 um 23:39 Uhr)
SunboX ist offline   Mit Zitat antworten
Alt 10-04-2003, 07:56   #11 (permalink)
www.penck.de
 
Benutzerbild von borisp
 
Registriert seit: Jan 2002
Ort: Wiesbaden / Mainz-Kastel
Beiträge: 926
Hier mal ein Beispiel .fla mit deiner Aufteilung
Angehängte Dateien
Dateityp: zip split.zip (2,6 KB, 79x aufgerufen)
borisp ist offline   Mit Zitat antworten
Alt 10-04-2003, 08:07   #12 (permalink)
.
 
Benutzerbild von SunboX
 
Registriert seit: Sep 2002
Ort: Auerbach / Mittweida
Beiträge: 912
Naja, soweit bin ich noch gekommen, nur schau dir mein Beispiel mal an. Woran könnte das liegen?

thanx SunboX
Angehängte Dateien
Dateityp: zip split2.zip (2,7 KB, 20x aufgerufen)
__________________
..:: mein weblog ::.. ..:: meine homepage ::.. ..:: VisualDRUGS ::..
Zitat:
Geschrieben von emax
iterativ arbeiten ist menschlich, rekursiv dagegen göttlich :D
Künstliche Intelligenz ist leichter zu ertragen, als natürliche Dummheit!
SunboX ist offline   Mit Zitat antworten
Alt 10-04-2003, 08:15   #13 (permalink)
www.penck.de
 
Benutzerbild von borisp
 
Registriert seit: Jan 2002
Ort: Wiesbaden / Mainz-Kastel
Beiträge: 926
Schau mal - so geht's ...
Angehängte Dateien
Dateityp: zip split2.zip (2,7 KB, 116x aufgerufen)
borisp ist offline   Mit Zitat antworten
Alt 10-04-2003, 08:19   #14 (permalink)
.
 
Benutzerbild von SunboX
 
Registriert seit: Sep 2002
Ort: Auerbach / Mittweida
Beiträge: 912
Nur die Var´s ändern. Is ja easy. *freu*

thanx SunboX
__________________
..:: mein weblog ::.. ..:: meine homepage ::.. ..:: VisualDRUGS ::..
Zitat:
Geschrieben von emax
iterativ arbeiten ist menschlich, rekursiv dagegen göttlich :D
Künstliche Intelligenz ist leichter zu ertragen, als natürliche Dummheit!
SunboX ist offline   Mit Zitat antworten
Alt 10-04-2003, 12:08   #15 (permalink)
rOb
Alter User
 
Registriert seit: Jun 2001
Ort: Bodensee-Metropole
Beiträge: 1.144
schön, sowas wollte ich auch schreiben,
sobald ich es gebraucht hätte.

Schön für onlinemagazine mit dynamischem content.

was mir nicht gefällt ist die verwendung von variable.
(sowie dem absolutem pfad, den man bei variable angeben muss)
ich würde versuchen dass nur über my_txt.text zu machen.

würde das auch nicht als object prototype machen,
sondern als eigene klasse.

von der struktur in der art:

my_tm = new TextManager();
my_tm.setString("mein langer string");
my_tm.setTextFields(this.tf1, _root.tf2, this._parent.tf3);

Dazu könnte man dann einen z.B. spaltengenerator bauen,
der dir mit hilfe des TextManager atomatisch die textfelder
als spalten anordnet.

my_sg = new ColumnGenerator();
my_sg.inititalize(meinMovieClip, width, height, anzSpalten, abstand);


...usw...
rOb 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 15:38 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele