Mehrere dynamisch gefüllte Comboboxen - Performance leidet sehr

10x10

Mitglied
Hallo,

ich habe einen Shop gebaut bei dem ich mehrere Movies (einen für jedes Produkt) mittels einer for-Schleife extern lade und nach einem Preload der gesamten Movies (Produkte) gebe ich diese untereinander in meinem Shop aus.

Die interaktiven Felder (Zusatz zur Bestellung, Anzahl der Bestellung) habe ich zuerst mittels Textfeldern gelöst. Dies stellte sich aber nicht als optimale Lösung heraus, da dafür Comboboxen die bessere Lösung sind.

Daher habe ich nun Comboboxen statt den früheren Textfeldern in die externen Movies integriert! Jetzt leidet die Performance beim laden der Movies leider sehr darunter.

Es ist immer der selbe externe Movie (97 KB) der für jedes Produkt geladen wird. Dieser wird dann individuell für jedes Produkt mit Text gefüllt wird

An der Datenmenge die geladen wird, kann es also nicht liegen.

Beim laden der Movieclips mit den jeweils 2 Comboboxen (übrigens die original Combobox-Komponente aus der Flash-8-Version) hängt für ungefähr 10 Sekunden der gesamte Browser.

Es ist auch kein anständiger Preload möglich, da sich wie gesagt der ganze Browser aufhängt beim laden.

Nach den knappen 10 Sekunden Ladezeit (offline + online) funktioniert alles aber einwandfrei.

Ich habe die Combobox-Komponente wie folgt befüllt:
Code:
this._lockroot = true;
zusatzArray.setSize(190);
zusatzArrayLabel=new Array();
for(i=0;i<_parent.anzeigeComboBox.length;i++){
zusatzArrayLabel[i]=_parent.anzeigeComboBox[i];
}
zusatzArray.dataProvider=zusatzArrayLabel;
zusatzArray.setStyle("embedFonts", true);
zusatzArray.setStyle("fontFamily" , "verdana_vierzehn");
zusatzArray.setStyle("fontSize", "14");;
focusWarenkorb=function(){
_parent.inDenWarenkorb._focusrect=false;
Selection.setFocus(_parent.inDenWarenkorb);
clearInterval(intervalId);
}
duration=20;
var cbListener:Object = new Object();
cbListener.change = function() {
_parent.zusatzNeu=String(zusatzArrayLabel[zusatzArray.selectedIndex]);
_parent.menge.test+=zusatzArrayLabel[zusatzArray.selectedIndex]+"testZusatz<br>";
intervalId = setInterval(focusWarenkorb, duration);
};
zusatzArray.addEventListener("change", cbListener);

Die Movieclips im Shop liegen unter einer Maske!

Hat jemand Erfahrung mit der Anwendung von mehreren Comboboxen und kann mir helfen?

Die Seite funktioniert sonst super, nur der Shop funktioniert dadurch nicht ordentlich und das stört mich sehr! Ich bekomm`s einfach nicht hin.
 
Wäre es machbar, die ganze .fla zu posten, um mal einen Einblick in die gesamte Vorgehensweiße zu haben?

Und wieso waren Textfelder für das ganze nicht die optimale Lösung? Wie genau soll das ganze dargestellt werden, so das man es nicht praktischer mit Textfeldern realisieren kann?

Bei genauerer Beschreibung, werde ich mal sehen, was ich machen kann.
 
Hi,

die mitgelieferten Komponenten sind vieles, aber leider nicht besonders schlank oder performant.

Wenn Du für eine Anwendung Steuerelemente vom Typ SelectField (bzw. ComboBox) benötigst, würde ich Dir empfehlen, selbst welche zu erstellen (irgendwo habe ich auch noch eine einfache Komboboxvariante von mir rumfliegen, wenn Bedarf besteht).

Gruß
.
 
Als erstes Mal, großes Danke für eure schnellen Antworten.

Wäre es machbar, die ganze .fla zu posten, um mal einen Einblick in die gesamte Vorgehensweiße zu haben?

Und wieso waren Textfelder für das ganze nicht die optimale Lösung? Wie genau soll das ganze dargestellt werden, so das man es nicht praktischer mit Textfeldern realisieren kann?

Bei genauerer Beschreibung, werde ich mal sehen, was ich machen kann.

Hier die .fla - Download shop.fla

Dies ist die .fla die für jedes Produkt mittels for-schleife in meinen Shop geladen wird und individuell gefüllt wird.
Diese liegen unter einer Maske!

Textfelder waren deshalb nicht die optimale Lösung, weil ich bei jedem Produkt im Shop verschiedene Zusätze habe (z.B.: bei T-Shirts die verschiedenen Größen, bzw. Farbe des Produkts usw.). Ich habe es als erstes mit Textfelder gelöst, die ich genau überprüft habe, ob der User das richtige eingibt, sonst kommt eine Fehlermeldung im Textfeld. Auch die Eingabe der ausgewählten Stückzahl für die Bestellung des Produkts mußte per Textfeld selbst eingegeben werden.

Dies ist ja sehr unpraktisch. Die User sind gewohnt für solche Zwecke eine vorgebene Auswahl zu haben, die sie nur mehr anklicken brauchen. Die andere Variante mit den Textfeldern funktioniert zwar auch, ist aber sicher nicht die optimale Lösung für die gute Benützbarkeit des Shops.

Hi,

die mitgelieferten Komponenten sind vieles, aber leider nicht besonders schlank oder performant.

Wenn Du für eine Anwendung Steuerelemente vom Typ SelectField (bzw. ComboBox) benötigst, würde ich Dir empfehlen, selbst welche zu erstellen (irgendwo habe ich auch noch eine einfache Komboboxvariante von mir rumfliegen, wenn Bedarf besteht).

Gruß

Ich glaube auch, daß es daran liegt. Es wär super, wenn du für mich eine Komboboxvariante hast, die besser funktioniert!

Danke schon Mal im Voraus!
 
Zuletzt bearbeitet:
Hört sich doch alles etwas komplexer an, als erwartet.

Sollte die Kombobox von Tobias nicht das passende sein, werde ich mal sehen, was ich machen kann.
 
Hi,

vielleicht genügt Dir die Variante im Anhang (ist allerdings schon von 2005, und "rohes" AS1.0 ;)).

Andernfalls wird es eh Zeit, dass ich mal eine aktuellere Version auf den Markt werfe. ;)

Gruß
.
 

Anhänge

Hi Tobias,

danke vielmals für deine Komponente. Leider reicht sie für meine Zwecke nicht, da ich aus Platzgründen eine Combobox brauche, bei der ich beim Ausklappen, die ausklappbaren Felder begrenzen kann.

Ich hatte bei der vorigen Box das aufklappen auf 3 Felder beschränkt. Zu den Weiteren kann man dann scrollen. Das geht ja bei deiner Komponente leider nicht.

Da du ja angeboten hast, deine Komponente zu aktualisieren, wäre ich dir sehr dankbar, wenn du eine solche Funktion in die Komponente einbauen könntest.

Beste Grüße
Max
 
Zuletzt bearbeitet:
Zurück