Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 04-10-2004, 11:37   #1 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
Question textaufteilung auf mehrere felder mit umbrüchen, dynamisch...

moin,

ich hab mir mal aus dem forum das script hier von borisp zum verteilen von dynamischen text auf mehrere textfelder reingezogen und auch ausprobiert, funktioniert sehr gut. danke dafür. zur veranschaulichung hier noch einmal das komplette script meines frames:
ActionScript:
  1. function geladen(erfolgreich) {
  2.     Foo = LadeObj.ref_d;
  3.     trace(LadeObj);
  4.     Object.prototype.splitText = function() {
  5.         this.elements = new Array();
  6.         for (e=0; e<=arguments.length-1; e++) {
  7.             if ((typeof arguments[e].variable) != undefined) {
  8.                 this.elements[this.elements.length] = arguments[e];
  9.             }
  10.         }
  11.     if(A.substr(0,1) == " ") A = A.substr(1);
  12.     if(B.substr(0,1) == " ") B = B.substr(1);
  13.     };
  14.     splitText.prototype.setText = function(myText) {
  15.         firstFieldVar = this.elements[0].variable;
  16.         _root[firstFieldVar] = myText;
  17.         lastFieldVar = firstFieldVar;
  18.         for (txtField=0; txtField<=this.elements.length-1; txtField++) {
  19.             newFieldVar = this.elements[txtField+1].variable;
  20.             fieldRows = this.elements[txtField].maxscroll;
  21.             while (fieldRows>1) {
  22.                 _root[newFieldVar] = _root[lastFieldVar].substr(_root[lastFieldVar].lastIndexOf(" "))+_root[newFieldVar];
  23.                 _root[lastFieldVar] = _root[lastFieldVar].substr(0, _root[lastFieldVar].lastIndexOf(" "));
  24.                 fieldRows = this.elements[txtField].maxscroll;
  25.             }
  26.             lastFieldVar = this.elements[txtField+1].variable;
  27.         }
  28.         for (var i = 0; i<this.textField_arr.length; i++){     
  29.                 var tf_txt = this.textField_arr[i];
  30.                 var tf_str = this.textField_arr[i].text;
  31.                 if (tf_str.charAt(0) == " "){
  32.                     tf_txt.text = tf_str.substr(1, tf_str.length-1);
  33.                 }
  34.         }
  35.     };
  36.     myText = new splitText(_root.tA, _root.tB);
  37.     myText.setText(Foo);
  38.     merkerLoaded = 0;
  39.     timeLine.alles = LadeObj.ref_d;
  40.     idPreloadImages = setInterval(showPreload, 1);
  41. }
  42.  
  43. this.LadeObj = new LoadVars();
  44. this.LadeObj.load("content_ref.txt");
  45. this.LadeObj.onLoad = geladen;

funktioniert wie gesagt gut, aber:
ich hab eine liste mit referenzen, die sich bei bedarf auf das 2. textfeld erweitern sollen.
jetzt ist das problem, wenn ein refernz-name ein leerzeichen hat und der auch noch in der letzten zeile des ersten textfelds liegt, schiebt das script den 2.teil der zeile, alles nach dem ersten leerzeichen, schon rüber, obwohl eigentlich innerhalb der ersten zeile noch genügend platz wäre, dies ganz anzuzeigen...

beispiel:
basf
basotherm
bavaria filmstudio
bayernwerk
bayerischer rundfunk
bayerische staatsbibliothek
baywa
bender werke
bosse design
braas
bristol-myers-squibb
bsh bosch siemens hausgerät


die letzte zeile wäre:
bosse design
danach wird/würde umgebrochen.

das sieht dann aber so aus mit dem script:
1. textfeld:
basf
basotherm
bavaria filmstudio
bayernwerk
bayerischer rundfunk
bayerische staatsbibliothek
baywa
bender werke
bosse
//umbruch!!!
2. textfeld:
design
braas
bristol-myers-squibb
bsh bosch siemens hausgerät


das textfile ist so formatiert:
Code:
&ref_b=balay
basf
basotherm
bavaria filmstudio 
bayernwerk
bayerischer rundfunk
bayerische staatsbibliothek
baywa
bender werke
bosse design
braas
bristol-myers-squibb
bsh bosch siemens hausgerät 
bug alutechnik
business channel 
burde&
&ref_c=casino menü 
castelli
caterpillar
ce consumer electronics ...............
jemand ne idee, wie man das beseitigen könnte????

die zeilen
ActionScript:
  1. if(A.substr(0,1) == " ") A = A.substr(1);
  2.     if(B.substr(0,1) == " ") B = B.substr(1);
sollen ja verhindern, das als erstes zeichen im drauffolgenden textfeld ein leerzeichen steht... wie kann ich was ähnliches verwenden, um auszuschließen dass nur nach /r/n oder so umgebrochen wird?
denn das sind doch die zeichen die zum umbruch dienen??

wär ma saucool, wenn mir da jemand helfen könnte

danke,
tom
modul47 ist offline   Mit Zitat antworten
Alt 04-10-2004, 15:18   #2 (permalink)
// Knäckebrot
 
Benutzerbild von modul47
 
Registriert seit: Mar 2002
Ort: München
Beiträge: 283
okay, habs rausgefunden, für die dies interessiert:

statt
ActionScript:
  1. while (fieldRows>1) {
  2.                 _root[newFieldVar] = _root[lastFieldVar].substr(_root[lastFieldVar].lastIndexOf(" "))+_root[newFieldVar];
  3.                 _root[lastFieldVar] = _root[lastFieldVar].substr(0, _root[lastFieldVar].lastIndexOf(" "));
  4.                 fieldRows = this.elements[txtField].maxscroll;

das:
ActionScript:
  1. while (fieldRows>1) {
  2.                 _root[newFieldVar] = _root[lastFieldVar].substr(_root[lastFieldVar].lastIndexOf("\n "))+_root[newFieldVar];
  3.                 _root[lastFieldVar] = _root[lastFieldVar].substr(0, _root[lastFieldVar].lastIndexOf("\n "));
  4.                 fieldRows = this.elements[txtField].maxscroll;

greetz
tom
modul47 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 11:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele