Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 25-05-2004, 15:12   #1 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 7
XPath Ergebnis korrekt, Arraygroesse "undefined"

Hallo zusammen,

ich komm' nicht drauf: Was mache ich falsch, wenn mein Array seine Groesse nicht rausrueckt?

Der Ergebnisknoten sieht im Debugger voellig korrekt aus, wenn ich ich weiss, was ich tue, kann ich auch auf attributes zugreifen - nur .length funktioniert nicht.

Danke und viele Gruesse
Klaus

function getDetails (xmlDoc, sId) {
var sSearch:String =
"/gasguide/gaslists/gaslistitem[@listindex = '-1']/gases/gasitem" +
"[@searchname = '" + sId + "']" +
"/resultcolumns";
var gasDetails:XMLNode = XPathAPI.selectSingleNode (xmlDoc.firstChild, sSearch);
trace ("Details: " + gasDetails.attributes.length);
return gasDetails;
}
kfendt ist offline   Mit Zitat antworten
Alt 25-05-2004, 16:26   #2 (permalink)
[Ernst Reiter]
 
Benutzerbild von Scrawer
 
Registriert seit: Jul 2001
Ort: austria
Beiträge: 3.691
attributes liefert ein assoziatives Array, daher das problem...

du kannst aber mit

var a = Array(gasDetails.attributes);

trace(a.length);

nachhelfen...

oder das assoziatives Array mit einer for in schleife durcharbeiten und count++
__________________
Das Gesetz des Lebens liegt im Notwendigen. Der Reiz des Lebens liegt im Überflüssigen
m.f.g Scrawer (www.thinkspace.at)
Scrawer ist offline   Mit Zitat antworten
Alt 26-05-2004, 07:27   #3 (permalink)
Neuer User
 
Registriert seit: May 2004
Beiträge: 7
Vielen Dank fuer die Hilfe - das hat's gebracht. Wenn man nicht weiss, was in Flash ein assoziatives Array ist, dann steht man natuerlich auf dem Schlauch, vor allem, wenn die IDE den Audruck auch als richtig einfaerbt . . .
Wie unterscheidet sich eigentlich ein assoziatives Array von einem normalen? Bisher hatte ich mit so etwas noch nie zu tun und leider ist Flash auch nicht gerade hilfreich, einen auf Fehler hinzuweisen. Gibt es vielleicht eine Einstellung, die ich noch nicht gefunden habe, dass Flash mich auf meine Fehler hinweist?

Klaus
kfendt ist offline   Mit Zitat antworten
Alt 27-05-2004, 08:05   #4 (permalink)
Flashaholic
 
Benutzerbild von atothek
 
Registriert seit: Feb 2003
Ort: Berlin
Beiträge: 1.459
ein "normales" Array kannst du mit einem index durchlaufen

ActionScript:
  1. for(var i=0; i<meinArr.length; i++){
  2. meinArr[i]="...";
  3. // oder
  4. trace(meinArr[i]);
  5. ...
  6. }

es ist folgendermaßen aufgebaut
meinArr[0]="...";
meinArr[1]="...";
meinArr[2]="...";
etc.

der index ist ein Number Type.

ein "assoziatives Array" ist dagegen anders aufgebaut. es entspricht dem Objecttypes

und sieht so aus
meinArr.ersterEintrag="wert1";
meinArr.zweiterEintrag="wert2";
...
man kann es auch anders schreiben und zwar

meinArr["ersterEintrag"]="wert1";
meinArr["zweiterEintrag"]="wert2";

in diesem fall kann man das Array ja nun nicht mehr mit nem Index durchlaufen und dafür gibt es die for...in schleife. diese liefert den "key"(index) als String und somit kann das ganze verarbeitet werden

ActionScript:
  1. for(var key in meinArr){
  2. trace(key);
  3. // key wäre dann ersterEintrag, zweiterEintrag ...
  4. // das ganze kann man wie folgt verarbeiten
  5. meinNeuesArr[i]=meinArr[i];
  6. // meinNeuesArr.ersterEintrag="wert1"; rtc.
  7. }
__________________
TVNEXT Solutions
atothek 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 14:10 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele