Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 01-10-2003, 14:58   #1 (permalink)
rib
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 215
frage: array ausgabe mit for schleife

warum gibt flash nur content2(80) in diesem fall aus und nicht alle zusammengezählt(786)?
wie bekomme ich alle content ausgegeben?

ActionScript:
  1. var ergebnis=0;
  2.  
  3. var content = new Array();
  4. content[content1] = 40;
  5. content[content4] = 666;
  6. content[content2] = 80;
  7.  
  8.  
  9. for(var index in content){
  10.     ergebnis += content[index];
  11.     trace(ergebnis);
  12. }
rib ist offline   Mit Zitat antworten
Alt 01-10-2003, 15:07   #2 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
ich bekomme nichts ausgetraced.
kein wunder, weil der index in einem array nur ein int (ganzzahl sein darf):
ActionScript:
  1. var ergebnis = 0;
  2. // lieber con statt content verwenden
  3. var con = new Array();
  4. con[0] = 40;
  5. con[1] = 666;
  6. con[2] = 80;
  7. for (var i in con) {
  8.     ergebnis += con[i];
  9.     trace(ergebnis);
  10. }
thorben.schmitt ist offline   Mit Zitat antworten
Alt 01-10-2003, 15:21   #3 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
ansonsten über object:
ActionScript:
  1. var con = new Object();
  2. con.content1 = 40;
  3. con.content4 = 666;
  4. con.content2 = 80;
  5. for (var index in con) {
  6.     ergebnis += con[index];
  7. }
  8. trace(ergebnis);
thorben.schmitt ist offline   Mit Zitat antworten
Alt 01-10-2003, 17:14   #4 (permalink)
rib
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 215
danke soweit

nun meine nächste frage:

ich möchte das objekt nach einem bestimmten element absuchen zum beispiel das objekt stuff3.
wenn es gefunden wird soll die nummer des zu suchenden elements inkrementiert werden und erneut in dem objekt gesucht werden.
wenn es nicht gefunden wird soll die aktion true ausgeben und nicht mehr weiter suchen.

wie mache ich das?
rib ist offline   Mit Zitat antworten
Alt 01-10-2003, 17:51   #5 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
ActionScript:
  1. // es soll zb nach content4 gesucht
  2. var con = new Object();
  3. con.content1 = 40;
  4. con.content4 = 666;
  5. con.content2 = 80;
  6. function hasElement(obj, elem) {
  7.     for (var i in obj) {
  8.         if (elem == i) {
  9.             return true;
  10. break;
  11.         }
  12.        
  13.     }
  14. }
  15. trace(hasElement(con, "content4"));
thorben.schmitt ist offline   Mit Zitat antworten
Alt 01-10-2003, 18:11   #6 (permalink)
rib
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 215
das gefällt mir schon mal gut, danke.
nur soll wenn es gefunden wird nach dem nächsten gesucht werden, in diesem fall content5.
und wenn es NICHT gefunden wird soll die aktion beendet werden und irgend etwas per trace ausgegeben werden.
wie geht das.
rib ist offline   Mit Zitat antworten
Alt 01-10-2003, 20:23   #7 (permalink)
rib
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 215
ok ich hab jetzt den code mal etwas erweitert.
nur bei der ausgabe gibts ein problem das ich nicht versteh.

hier der code:
ActionScript:
  1. var con = new Object();
  2. con.contant1 = 40;
  3. con.contant4 = 666;
  4. con.contant2 = 80;
  5.  
  6. hasElement(con, "contant", "1", "0");
  7.  
  8. function hasElement(obj, elem, number, nichtvorh) { 
  9.     for (var i in obj) {
  10.         if (elem add number == i) {
  11.             number++;
  12.             nichtvorh=0;
  13.             trace(i);
  14.             hasElement(con, elem, number, "0");
  15.         }else{
  16.             nichtvorh=1;
  17.             trace(i);
  18.         }
  19.     }
  20.     if(nichtvorh==1){
  21.         trace("nicht vorhanden");
  22.         break;
  23.     }
  24.    
  25. }

hier der output:

contant2
contant4
contant1
contant2
contant2
contant4
contant1
nicht vorhanden <-bis hier hin alle klar
contant4
contant1
nicht vorhanden <-aber was macht noch danach(letzten drei)??, was durchläuft er nochmal und warum?

Geändert von rib (01-10-2003 um 20:25 Uhr)
rib ist offline   Mit Zitat antworten
Alt 01-10-2003, 20:50   #8 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
versuchs mal so:
ActionScript:
  1. stop();
  2. // es soll zb nach content# gesucht
  3. var con = new Object();
  4. con.content1 = 40;
  5. con.content4 = 666;
  6. con.content2 = 80;
  7.  
  8. function hasElement(obj, elem,end) {
  9.         for (var i in obj) {
  10.                 for(a=0; a<=end; a++){
  11.                     newelem = elem add a;
  12.                     if (newelem == i) {
  13.                             ausgabe += newelem+" | ";
  14.                     }
  15.                 }
  16.                
  17.         }
  18. return ausgabe;
  19. }
  20.  
  21. trace(hasElement(con, "content",5));

mfg geo
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker

Geändert von _geo_ (01-10-2003 um 20:52 Uhr)
_geo_ ist offline   Mit Zitat antworten
Alt 01-10-2003, 22:27   #9 (permalink)
rib
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 215
naja dein skript zählt alle vorhandenen elemente auf.
das ist aber in meinem fall nicht nötig.

ziel soll es sein das objekt nach einem (in einer variable übergebenen) element zu durchsuchen.
wenn sich in dem objekt ein element dieses namens befindet soll der suchvorgang erneut gestartet werden jedoch dieses mal nach einem element dessen endziffer um ein grösser ist als die des vorherigen.
das soll so lange wiederholt werden bis sich ein ein element nicht im objekt finden lässt.
dann soll eine bestimmte aktion ausgeführt werden und das skript beendet werden.

das hab ich so weit auch schon mit meinem skript hinbekommen nur ist es noch fehlerhaft(siehe ausgabe) was ich momentan nicht versteh, um hilfe diesbezüglich oder ein einfachere oder performanceschonendere lösung wäre ich sehr dankbar!!

danke an alle die mir helfen können bzw geholfen haben.

Geändert von rib (01-10-2003 um 22:29 Uhr)
rib ist offline   Mit Zitat antworten
Alt 02-10-2003, 15:14   #10 (permalink)
rib
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 215
hallo hallo
ich brach unbedingt hilfe in diesem fall, ich komm sonst nicht voran.bitte helft mir.
rib ist offline   Mit Zitat antworten
Alt 02-10-2003, 16:29   #11 (permalink)
_//\\#//\\_
 
Benutzerbild von warrantmaster
 
Registriert seit: Jan 2003
Beiträge: 7.060
ActionScript:
  1. content = ["a1", "a4", "a3", "a6", "a2", "a7"];
  2. Array.prototype.suche = function(nam, count, pos) {
  3.     this.sort();
  4.     if (this[pos] == nam+count) {
  5.         trace(this[pos]);
  6.         this.suche(nam, count+1, pos+1);
  7.     } else {
  8.         trace("hallo");
  9.     }
  10. };
  11. content.suche("a", 1, 0);
warrantmaster ist offline   Mit Zitat antworten
Alt 02-10-2003, 16:35   #12 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
@warrantmaster: Nennt sich das rekursiv oder ?
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 02-10-2003, 16:48   #13 (permalink)
...
 
Registriert seit: Oct 2002
Ort: Nürnberg
Beiträge: 3.611
@__goe__:
jup, rekursiv, weil die function sich selber wieder aufruft
thorben.schmitt ist offline   Mit Zitat antworten
Alt 02-10-2003, 16:55   #14 (permalink)
~~~~~~~~~~~~
 
Benutzerbild von _geo_
 
Registriert seit: May 2002
Ort: AUSTRIA (OÖ)
Beiträge: 3.298
ok, danke
__________________
--- :P ---

Blog
Bei unerwünschten Nebenwirkungen zerreißen Sie die Packungsbeilage oder erschlagen ihren Arzt oder Apotheker
_geo_ ist offline   Mit Zitat antworten
Alt 02-10-2003, 17:40   #15 (permalink)
rib
Neuer User
 
Registriert seit: Oct 2003
Beiträge: 215
super danke,
das letzte was ich jetzt noch brauch ist eine möglichkeit das zu suchende objekt in der grösse seiner nummer zu begrenzen.
wenn die grenze erreicht ist soll das zu suchende objekt wieder mit 0 enden und das erneut gesucht werden.

also beispiel wenn begrenzung 5:

sucht: objekt3 -nicht gefunden
sucht: objekt4 -nicht gefunden
sucht: objekt5 -nicht gefunden
sucht: objekt0 -nicht gefunden
sucht: objekt1 -nicht gefunden
...

wäre super wenn du das noch einbauen köntest.
rib 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 12:14 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele