Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 09-08-2004, 11:37   #1 (permalink)
Fläscher
 
Benutzerbild von Kord
 
Registriert seit: Jan 2002
Ort: Wien
Beiträge: 343
Suche schnelleres Array.toString ()

Hi, ich habe eine Situation in der ich verschiedene Werte mit Beistrichen getrennt in einem Textfeld ausgeben soll. Array.toString () macht das natürlich perfekt, ist nur bei größeren Arrays irre lahm. Kann man das irgendwie schneller lösen?
Das ist der Aufruf, den ich benutze:
ActionScript:
  1. buttsNTextDis_mc.sammelFeld_txt.text = namenArray.toString ().substr (1, namenArray.toString ().length);
Danke, Kord
__________________

:: Wer im Leben alles schneller macht lebt länger (A. Einstein) ::
Kord ist offline   Mit Zitat antworten
Alt 09-08-2004, 13:13   #2 (permalink)
Neuer User
 
Registriert seit: Nov 2003
Beiträge: 63
weiß nicht genau was du machen willst, aber schau dir mal join() an...
Herr-Vorragend ist offline   Mit Zitat antworten
Alt 09-08-2004, 13:22   #3 (permalink)
Fläscher
 
Benutzerbild von Kord
 
Registriert seit: Jan 2002
Ort: Wien
Beiträge: 343
Zitat:
Zitat von Herr-Vorragend
weiß nicht genau was du machen willst, aber schau dir mal join() an...
Ich suche ein schnelleres Array.toString(), eines das nicht soviel Performance braucht.
__________________

:: Wer im Leben alles schneller macht lebt länger (A. Einstein) ::
Kord ist offline   Mit Zitat antworten
Alt 09-08-2004, 13:25   #4 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
hmm also join is die "extended" version von toString, dort kannste nen anderes trennzeichen als die kommatas auswählen.
von der geschwindigkeit entsprechen die 2 methoden sich in 90%.

kannst dadurch aber nicht viel herausholen.
wo du aber etwas heruasholen kannst.
frage die länge nur einmal ab und hinterleg sie dir in ner variablen.
genauso wenn du den string des arrays öfters brauchst, nicht mehrmals "konvertieren" sondern einmalig die sache in ner variablen ablegen.
ActionScript:
  1. //für substr bracuhste die länge übrigens garnich
  2. //wenn du den string bis zum ende ausgeben willst
  3. var l=namenArray.length
  4. var str=namenArray.toString()
  5. txtfeld.text = str.substr (1)
dadurch solltest du im vergleich zu deiner version mindestens die hälfte der rechenzeit einsparen

grüße
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 09-08-2004, 13:47   #5 (permalink)
Fläscher
 
Benutzerbild von Kord
 
Registriert seit: Jan 2002
Ort: Wien
Beiträge: 343
Danke DeLuxe, ein bisschen was bringts; ist aber leider auch nicht berauschend
__________________

:: Wer im Leben alles schneller macht lebt länger (A. Einstein) ::
Kord ist offline   Mit Zitat antworten
Alt 10-08-2004, 08:32   #6 (permalink)
Neuer User
 
Registriert seit: Jun 2001
Ort: Stuttgart
Beiträge: 6.415
wie groß sind denn deine arrays?wenns zu nem zu großen rechenlag kommt kannste das array in häppchen abarbeiten.
zB in einer frameschleife oder einem intervall
dann würde der user nicht unwesentlich länger warten aber du würdest diesen lag verhindern, wo der user denken könnte sein browser sei abgestürzt.
falls dus mal probieren möchtest
ActionScript:
  1. liste=[1,2,3,4,5,6,7,8,9,0]
  2. teile=3
  3. f=function(ref,arr,teile){
  4.     if(arr.length>0){
  5.         trace(arr.splice(0,teile).toString())
  6.     }else{
  7.         clearInterval(ref.intV)
  8.     }
  9. }
  10. intV=setInterval(f,200,this,liste,teile)
so wird das array in 4 kleinen häppchen verarbeitet


falls du das usprungsarray behalten willst kopierste es davor per
neuesArray=altesArray.concat()


grüße
deluxe
Deluxe ist offline   Mit Zitat antworten
Alt 13-08-2004, 16:44   #7 (permalink)
Fläscher
 
Benutzerbild von Kord
 
Registriert seit: Jan 2002
Ort: Wien
Beiträge: 343
Hi deLuxe, sorry für die späte Antwort!
Also es werden maximal so 150 Einträge. Ab ca. 100 wird es leider äußerst lahm. Das mit dem Häppchen ist fein, aber in meinem Fall bringt es das nicht wirklich. Ist halt einfach schade, dass es am Anfang sehr flott geht und dann nicht mehr. Vermutlich werdn allerdings über 100 Einträge eh selten sein, da es auch Gruppierungen gibt (würde jetzt zu weit führen das genau zu erklären; ist ein bisschen kompliziert vom Konzept)
Vielen Dank für deine Hilfe, Kord
__________________

:: Wer im Leben alles schneller macht lebt länger (A. Einstein) ::
Kord 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 08:53 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele