Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 26-05-2006, 11:21   #1 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
dynamischer performancekiller (wackeltext)

howdie fellas!

hätte ich ein tool programmieren wollen, was nutzlos performance frisst, wär dieser thread unnötig.
da ich allerdings einfach nur ne texteinblende machen wollte, is das hier wohl noch nich state of art.

zum thema:

ich möchte nen dynamischen text buchstabe für buchstabe erscheinen und wabbern lassen (passt so schön zum wackelpeter)

bisher hab ich das SO gemacht:

ActionScript:
  1. textspeicher = "in den letzten tagen plagen mich das muss ich ehrlich sagen desöftren offensichtlich und eindeutig unwichtige fragen. ich lass mich dann gelegentlich auch mal dazu verleiten n tag im land der nebensächlichkeiten zu bestreiten. belanglose problematiken und zeug das keine sau tangiert ham mich schon mein leben lang besonders fasziniert.";
  2.  
  3. textspeicher = textspeicher.split("");
  4. wortspeicher = textspeicher.split(" ");
  5.  
  6. function texten(startX, startY){
  7.  
  8.       mf1 = new TextFormat();   
  9.       mf1.font = "Arial";
  10.       mf1.size = 20;
  11.       mf1.color = 0xE1E1E1;
  12.       
  13.       mf2 = new TextFormat();
  14.       mf2.font = "Arial";
  15.       mf2.size = 14;
  16.       mf2.color = 0x858585;
  17.       
  18.       mf3 = new TextFormat();
  19.       mf3.font = "Arial";
  20.       mf3.size = 10;
  21.       mf3.color = 0x0000;
  22.       
  23.       mf4 = new TextFormat();
  24.       mf4.font = "Arial";
  25.       mf4.size = 8;
  26.       mf4.color = 0x0000;
  27.       
  28.       mf5 = new TextFormat();
  29.       mf5.font = "Arial";
  30.       mf5.size = 10;
  31.       mf5.color = 0x0000;
  32.    
  33.     this.createEmptyMovieClip("textbunker",5454);
  34.     this.textbunker._x = startX;
  35.     this.textbunker._y = startY;
  36.     this.textbunker.count = -1;
  37.     this.textbunker.writeX = 0;
  38.     this.textbunker.writeY = 0;
  39.    
  40.     this.textbunker.onEnterFrame=function(){
  41.         this.count++;
  42.        
  43.         if(this.count<=textspeicher.length+3){
  44.             this.id = "t"+this.count;
  45.             this.lastid = "t"+(this.count-1);
  46.             this.verylastid = "t"+(this.count-2);
  47.             this.verylastid2 = "t"+(this.count-3);
  48.             this.verylastid3 = "t"+(this.count-4);
  49.            
  50.             this.writeX += 7;
  51.            
  52.             if(this.writeX > 600){  //hier müsste man mit dem gesplitteten wortspeicher doch auch irgendwie rausfinden können, obs wort schon zuende is
  53.                 this.writeY += 20;
  54.                 this.writeX = 0;
  55.             }
  56.            
  57.             this.createTextField(this.id, 999+this.count, this.writeX, this.writeY, 200, 300);
  58.            
  59.             this[this.id].setNewTextFormat(mf1);
  60.             this[this.id]._x -= 12;
  61.             this[this.id]._y -= 6;
  62.            
  63.             this[this.lastid].setTextFormat(mf2);
  64.             this[this.lastid]._x += 6;
  65.             this[this.lastid]._y += 3;
  66.            
  67.             this[this.verylastid].setTextFormat(mf3);
  68.             this[this.verylastid]._x += 6;
  69.             this[this.verylastid]._y += 3;
  70.            
  71.             this[this.verylastid2].setTextFormat(mf4);
  72.             this[this.verylastid2]._x += 6;
  73.             this[this.verylastid2]._y += 3;
  74.            
  75.             this[this.verylastid3].setTextFormat(mf5);
  76.             this[this.verylastid3]._x -= 6;
  77.             this[this.verylastid3]._y -= 3;
  78.            
  79.             this[this.id].text = textspeicher[this.count];
  80.            
  81.         }
  82.         else{
  83.             delete this.onEnterFrame;
  84.         }
  85.     }
  86. }
  87.  
  88. texten(20, 20);

...das geht doch bestimmt auch schneller, schöner und besser!

...kann man das nich vielleicht mit etwas getrixe sogar in EINEM textfeld regeln???

das spacing hab ich auch noch nich lösen können.
...gibts da irgend nen befehl, der einem die grösse des INHALTS eines textfeldes angibt,und nich die grösse des textfeldes selbst?

für jede hilfe gibts n eis!

grüsse vom
strie
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 26-05-2006, 19:43   #2 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
keiner?

...erhöhe um eine kugel!
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 26-05-2006, 23:17   #3 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
ich sehe da nichts wackeln oder um was soll es da gehen?

normalen text mit einer maske aufdecken und eine animation mitlaufen lassen.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-06-2006, 10:28   #4 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
so.
hat lang gedauert, aber war ja auch viel schönes wetter.

also: ich hab den code nochmal überarbeitet und dann so zusammengestrichen, dass er nu auch funzen sollte, wenn du ihn einfach ins erste frame kopierst...

das hauptproblem hat sich mitlerweile auch etwas verlagert: ich würde den code gerne flashmx2004-kompatibel machen, aber anstatt undefineds zu ignorieren, gibt 2004 diese dann im textfeld aus...

ActionScript:
  1. _root.headlinecolors = ["0xE7EFF1", "0xC1D7DD", "0x8AB3BF", "0x538797", "0xDDDBDB"];
  2. _root.headlineFont = "Tolo";
  3. _root.headlineSize = 19;
  4. _root.headlineAbst = 13;
  5. _root.headlineX = 65;
  6. _root.headlineY = 90;
  7.  
  8. texten = function(dertext, instanzname){
  9.     _root.textfeld ++;
  10.     trace(dertext);
  11.    
  12.     var fsize = _root[instanzname + "Size"];
  13.     var startX = _root[instanzname + "X"];
  14.     var startY = _root[instanzname + "Y"];
  15.     var laufweite = _root[instanzname + "Width"];
  16.     var abstand = _root[instanzname + "Abst"];
  17.    
  18.    
  19.     if(instanzname == "headline"){
  20.         _root.subtext.unloadMovie();
  21.     }
  22.    
  23.     textspeicher = dertext.split("");
  24.     trace(textspeicher);
  25.  
  26.       mf1 = new TextFormat();   
  27.       mf1.html = true;
  28.       mf1.font = _root[instanzname + "Font"];
  29.       mf1.size = 5*fsize;
  30.       mf1.color = _root[instanzname + "colors"][0];
  31.       
  32.       mf2 = new TextFormat();
  33.       mf2.html = true;
  34.       mf2.font = _root[instanzname + "Font"];
  35.       mf2.size = 2*fsize;
  36.       mf2.color = _root[instanzname + "colors"][1];
  37.       
  38.       mf3 = new TextFormat();
  39.       mf3.html = true;
  40.       mf3.font = _root[instanzname + "Font"];
  41.       mf3.size = fsize;
  42.       mf3.color = _root[instanzname + "colors"][2];
  43.       
  44.       mf4 = new TextFormat();
  45.       mf4.html = true;
  46.       mf4.font = _root[instanzname + "Font"];
  47.       mf4.size = fsize - fsize/2;
  48.       mf4.color = _root[instanzname + "colors"][3];
  49.       
  50.       mf5 = new TextFormat();
  51.       mf5.html = true;
  52.       mf5.font = _root[instanzname + "Font"];
  53.       mf5.size = fsize;
  54.       mf5.color = _root[instanzname + "colors"][4];
  55.    
  56.     this.createEmptyMovieClip(instanzname,5454 + 500*instanzname.length);
  57.     this[instanzname].createTextField("endtext", 900, 0, 0, laufweite + 100, fsize+5);
  58.     this[instanzname].endtext.setNewTextFormat(mf5);
  59.     this[instanzname].endtext.text = " ";
  60.     this[instanzname].endtext.autoSize = true;
  61.     this[instanzname].endtext.selectable = false;
  62.     this[instanzname]._x = startX;
  63.     this[instanzname]._y = startY;
  64.     this[instanzname].count = -1;
  65.     this[instanzname].writeX = 0;
  66.     this[instanzname].writeY = 0;
  67.    
  68.     this[instanzname].onEnterFrame=function(){
  69.         this.count++;
  70.         if(this.count<=textspeicher.length+3){
  71.             this.id = "t"+this.count;
  72.             this.lastid = "t"+(this.count-1);
  73.             this.verylastid = "t"+(this.count-2);
  74.             this.verylastid2 = "t"+(this.count-3);
  75.             this.verylastid3 = "t"+(this.count-4);
  76.            
  77.             this.writeX += abstand;
  78.            
  79.             if(this.writeX > laufweite){
  80.                 this.writeY += fsize;
  81.                 this.writeX = 0;
  82.             }
  83.            
  84.             this.createTextField(this.id, 999+this.count, this.writeX, this.writeY, 5*fsize, 5*fsize);
  85.            
  86.             this[this.id].autoSize = true;
  87.             this[this.id].selectable = false;
  88.            
  89.             this[this.id].setNewTextFormat(mf1);
  90.             this[this.id]._x -= 12;
  91.             this[this.id]._y -= 6;
  92.            
  93.             this[this.lastid].setTextFormat(mf2);
  94.             this[this.lastid]._x += 6;
  95.             this[this.lastid]._y += 3;
  96.            
  97.             this[this.verylastid].setTextFormat(mf3);
  98.             this[this.verylastid]._x += 6;
  99.             this[this.verylastid]._y += 3;
  100.            
  101.             this[this.verylastid2].setTextFormat(mf4);
  102.             this[this.verylastid2]._x += 6;
  103.             this[this.verylastid2]._y += 3;
  104.            
  105.             this[this.verylastid3].removeTextField();
  106.             delete this[this.verylastid3];
  107.            
  108.             this.endtext.text += textspeicher[this.count-4];
  109.             this[this.id].text = textspeicher[this.count];     //das hier is das problem !!!! wenns undefined is ignoriert mx2004 s nich...
  110.         }
  111.         else{
  112.             delete this.onEnterFrame;
  113.             this[instanzname].endtext.text += "  ";
  114.         }
  115.     }
  116. }
  117.  
  118. texten("...aloah!", "headline", false);
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 26-06-2006, 18:24   #5 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
this.endtext.text += textspeicher[this.count-4] == undefined ? " " : textspeicher[this.count-4];
this[this.id].text = textspeicher[this.count] == undefinde ? " " : textspeicher[this.count];

das ist aber noch nicht die endversion?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-06-2006, 18:45   #6 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
äh, höh?
also FERTICH is das nich, ne.
aber unter MX macht es schon das was es soll...

hastes ma probiert?
da kommt dann ein dreifaches "undefined" reingeflogen.
is ja auch klar warum, nur wie krich ich das in den griff ohne die 4 text-vergrösser/-kleiner-aktionen einzelnd laufen zu lassen.

...aah. kann mich heut nich ausdrücken, hoff du verstehst...

strie!
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie ist offline   Mit Zitat antworten
Alt 26-06-2006, 19:16   #7 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
"..da kommt dann ein dreifaches "undefined" reingeflogen.."

wozu habe ich dir wohl in #5 diese 2 zeilen programm geschrieben?

a) weil du geburtstag hasst?
b) weil heute mittwoch ist?
c) weil die antwort weder a noch b noch c, sondern d ist?
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (26-06-2006 um 19:18 Uhr)
hgseib ist offline   Mit Zitat antworten
Alt 26-06-2006, 20:45   #8 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
e)!!!
ich versteh nur spanisch und das auch nur rückwärts!

...also...
imernst:
ich versteh nich so ganz was du mir damit sagen willst.
und noch weniger wie ichs besser machen soll.
is definitiv kein fertiger code sondern eher n wackliges kostrukt... macGyver-code...
nur ich raff net wie ichs besser mach.

strie
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace

Geändert von störie (26-06-2006 um 20:56 Uhr)
störie ist offline   Mit Zitat antworten
Alt 26-06-2006, 21:33   #9 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.322
a) man nehme deinen script aus #4 und testet ihn: ergebnis undefined

b) man nehme meine 2 zeilen aus #5 und ersetze damit die zeilen 86-87 testen und: kein undefined mehr zu sehen

c) meine aussage auf das unfertige bezieht sich darauf, das die 'reinfliegenden' buchstaben viel zu weit rechts positioniert werden.
mal die framerate runtersetzen und den text länger machen, dann sieht man das sehr deutlich.
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de
hgseib ist offline   Mit Zitat antworten
Alt 26-06-2006, 23:57   #10 (permalink)
FlashForRum
 
Benutzerbild von störie
 
Registriert seit: Oct 2004
Ort: börlinn
Beiträge: 583
ach so!
kay. kla.
hab ich nich so gerafft, sorry!
danke!

und ne. das fliegt bisher noch ≈ 3,141 592 653 589 793 mal daumen.

strie
__________________
>>Achim Fehltdawas<<
°-°
mySite
myFlash-toons
mySpace
störie 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 05:33 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele