Flashhilfe.de - Flash Community

Überprüfen ob beide ArrayIndex existieren [Flash 10]

Forum > ActionScript 2.0 > Überprüfen ob beide ArrayIndex existieren

 


AntwortenRegistrieren Seite1  

 02.12.2010, 13:42 
Benutzerbild von deflashoman
Beiträge: 140
Registriert: Jul 2007

Überprüfen ob beide ArrayIndex existieren
Hi,

Ich habe ein Warenkorb und lass die Art der Versand in ein Array packen,
also "Einkaufsliste_versandart". Flash überprüft folgende values "post" oder "download"...


Aber sobald beides existiert, sollte wieder Versandkosten berechnet werden.
folgenden Ansatz hab ich:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
for (var i:Number = 0; i < Einkaufsliste_versandart.length; i++)
{
    if (Einkaufsliste_versandart[i] == "post")
    {
        trace("VERSANDKOSTEN");
    }
    else if (Einkaufsliste_versandart[i] == "download")
    {
        trace("KEINE VERSANDKOSTEN");
    }
    else if ((Einkaufsliste_versandart[i] == "download") && (Einkaufsliste_versandart[i] == "post"))
    {
        trace("VERSANDKOSTEN");
    }
}


Doch wenn ich als letztes ein download Artikel anklicke werden keine Versandkosten angerechnet, obwohl im Warenkorb noch 2 weitere Artikel sind die mit Versandkosten in der Gesamtrechnung berechnet werden. bissel kompliziert -.-
Schlagwörter: Array, if else, überprüfen
 02.12.2010, 14:46Re1
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

Du kannst in einem Durchlauf nur ein "i-wert" abfragen, kann also nicht gehen!
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 02.12.2010, 15:02Re2
Benutzerbild von deflashoman
Beiträge: 140
Registriert: Jul 2007

Themenautor/in

Das bedeutet das ich noch ein "j" wert mit einbauen soll?

Irgendwie gibt Flash mir auch den letzten i wert, also die For-Schleife
feuert alles nacheinander ab und die if-Bedingung fängt nur den letzten ab ?!

Krieg ich auch einen Tip?
 
nicht sichtbar bei eingeloggten Mitgliedern
 02.12.2010, 15:53Re3
Benutzerbild von RustyCake
Beiträge: 1769
Wohnort: Laimbach 6 1/2
Registriert: Nov 2002

Gibts es nur diese zwei Möglichkeiten "post" und "download" ?
Bitte keine Fragen, zu Flash per PM. Dazu ist das Forum da. Danke MFG_RustyCake!
"Wer tanzen will, muss erst gehen lernen"
 02.12.2010, 16:12Re4
Benutzerbild von deflashoman
Beiträge: 140
Registriert: Jul 2007

Themenautor/in

Jawohl.

Die Lade ich aus der XML in arrays von dort wieder in array, bla bla...
 02.12.2010, 17:04Re5
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

Wie stellst du eigentlich die Verbindung zwischen Produkt und Versandart her?
Oder ist es so, dass sobald einmal "post" gewählt wurde, alle Produkte per Post verschickt werden?
 
nicht sichtbar bei eingeloggten Mitgliedern
 02.12.2010, 17:13Re6
Benutzerbild von deflashoman
Beiträge: 140
Registriert: Jul 2007

Themenautor/in

In der XML hab ich für ein attribute das mir die Werte "post" oder "download" gibt. Falls ich mich in der XML verschreibe gibt Flash mir dann einen error! also es wird nur auf die 2 Werte geprüft...

Hier die XML:

PHP:
1
2
3
4
5
6
7
8
9
10
<?xml version="1.0" encoding="UTF-16" ?>

<shop versandkosten="2.90" >
<alben name="ALBUM1" preis="14.99" cover=".../x.png" versandart="post">

BESCHREIBUNG

</alben>
</shop>


Bei  versandart="post" gibt ich z.b. "download" und flash berechnet dann keine Versandkosten. Doch sobald ein Produkt kommt mit "post" fügt Flash dann doch Versandkosten dazu, obwohl ein download Produkt mit im Warenkorb ist.



Das müsste eigentlich mit if else doch bewältigt werden können, doch mir fehlen die Ideen - hab alles probiert x/
Geändert von deflashoman am 02.12.10 um 17:15 Uhr

 02.12.2010, 17:23Re7
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

Also würde es doch im Grunde genommen reichen, wenn du einfach nur überprüfst, ob der Wert "post" mindestens einmal im Array vorkommt. Standard ist "download".
 02.12.2010, 17:28Re8
Benutzerbild von deflashoman
Beiträge: 140
Registriert: Jul 2007

Themenautor/in

okay wie schaff ich das ich auf mindestens ein "post" finde? Mit indexOf hab ich es
auch versucht aber ohne Erfolg!

also ich pack die alle in ein array namens "Einkaufsliste_versandart" dort sind dann z.b.
wenn ich es mit for-schleife auslese:

post
post
download
post
download
...
..
.

sorry aber irgendwie merk ich das ich einige Lücken in der Grundkenntnis habe, hab das noch
nie gemacht, weil ich es noch nie gebraucht habe :)
Geändert von deflashoman am 02.12.10 um 17:30 Uhr

 02.12.2010, 17:30Re9
Benutzerbild von badskillFlashhilfe.de Moderator
Beiträge: 5285
Wohnort: Bernau (bei Berlin)
Registriert: Nov 2002

indexOf wäre hier die richtige Methode dafür. Die gibt es aber erst ab Actionscript 3.
Eine einfache Funktion schafft da Abhilfe:
ActionScript:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
var arr:Array = ['download', 'post', 'download'];

function shippingByDownload(value:Array):Boolean
{
     var len:Number = value.length;
     while (len--)
     {
        if (value[len] == 'post') return false;
     }
     
     return true;
}

trace(shippingByDownload(arr));
 02.12.2010, 17:35Re10
Benutzerbild von deflashoman
Beiträge: 140
Registriert: Jul 2007

Themenautor/in

geilo, wäre in 10 Jahren nicht drauf gekommen,
geschweige denn in google gefunden.

Hab probiert funktioniert direkt auf anhieb.

badskill einen riesen Dank!!
 
Themen
Ähnliche Beiträge zum Thema
 

AntwortenRegistrieren Seite1  

Schnellantwort

Du musst registriert sein, um diese Funktion nutzen zu können.
Partner Webseiten: DesignerInAction.de   Designnation.de   Mediengestalter.info   php-resource.de   phpforum.de   phpwelt.de   Pixelio.de   PSD-Tutorials.de   Tutorials.de

Haftungsausschluss   Datenschutzerklärung   Hier Werben   Impressum
© 1999-2012 Sebastian Wichmann - Flashhilfe.de