| |||||||
Du magst keine Werbung? Wir auch nicht!
Einfach registrieren und die Werbung ist weg. Diese Nachricht sehen nur nicht registrierte Nutzer.
![]() |
| | LinkBack | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
| Array.prototype ändert das array einfach nicht
kann mir einer erklären warum folgendes script nicht funktioniert? entweder ich bin heute mal wieder zu doof zum s******* oder das stimmt was nicht. PHP-Code: gruß madFlanderz
__________________ |
| | |
| | #2 (permalink) |
| Flashaholic Registriert seit: Feb 2003 Ort: Berlin
Beiträge: 1.459
|
versuch es mal wie filgt PHP-Code: mfg alex
__________________ TVNEXT Solutions |
| | |
| | #3 (permalink) |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
|
hehe, das kann ich auch ,die setRandom-fkt habe ich nur als beispiel benutzt. es geht mir ums allgemeine prinzip, wie man das array direkt ändert. ich will anstatt a = a.setRandom() einfach nur a.setRandom(); schreiben. wieso kann man nicht änderungen am array selber durchführen ? und das kuriose ist ja, daß innerhalb der setRandom-fkt this die veränderten werte enthält. nach beendigung scheinen diese aber nicht übernommen zu werden.
__________________ Geändert von maddin79 (06-01-2005 um 11:22 Uhr) |
| | |
| | #4 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Ich würde das Array ändern, um es zu ändern und nicht ersetzen ![]() this ist letzlich auch nur eine lokale Variable, die auf den aktuellen Scope zeigt, deshalb siehst du die Änderung innerhalb deiner Funktion, aber nicht danach. ActionScript:
mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting Geändert von bokel (06-01-2005 um 11:41 Uhr) |
| | |
| | #5 (permalink) | |
| a.k.a maddin79 Registriert seit: Jul 2003 Ort: berlin f-hain
Beiträge: 1.693
|
ach jungs, danke für die mühen, aber das ist nicht was ich will. klar kann ich die einzelnen elemente ansprechen aber die setRandom fkt war ja nur n beispiel um mit dem array irgendwas anzustellen. hier mal n praktisches beispiel was ich wirklich gerade verwenden will: PHP-Code: Zitat:
schön tag noch madFlanderz
__________________ | |
| | |
| | #6 (permalink) |
| helpQLODhelp Registriert seit: Feb 2002 Ort: Köln
Beiträge: 8.505
|
Mach doch einfach so: ActionScript:
mfg r.
__________________ Ralf Bokelberg™ - Flex & Flash Consulting |
| | |
| | #7 (permalink) |
| querdenker Registriert seit: Jun 2001 Ort: formel1-stadt hockenheim
Beiträge: 4.731
|
das problem warum das nicht geht ist, wnen ich mich recht entsinne, folgende: unfd zwar müsstest du das array ja auf die ein oder andere art löschen. entweder die elemente in dem array, oder aber das array selbst. bei deiner art würdest du ja das array überschreiben wollen, ohne die einzelnen elemente anzufassen. du sagst also nicht: ich entferne element a aus dem array oder alle elmente, sondern du willst das array komplett überschreiben. das geht aber technisch nur, in dem das array gelöscht und wieder neu erstellt wird. und in dem moment, wo das array gelöscht wird, kannst du innerhalb einer klassenmethode nicht mehr mit arbeiten. das 'this' darin ist tatsächlich auch nur ein temporärer verweis und nicht das obejkt selbst. was anderes ist es, wenn du außerhalb dann via: a = a.methode(); a tatsächlich mit dem ermittelten wert aus der methode überschreibst bzw. neu schreibst. machst du es aber so, wie ralf es schon zeigte, dann werden lediglich die elemente ersetzt und neue hinzu gefügt, bzw. überflüssige elemente entfernt, aber ohne dass das array selbst verändert werden müsste. der container bleibt also so erhalten, wie er war und nur die elemente darin werden verändert. das ist im übrigen ein generelles problem mit 'containern'. auch ein mc hat das... lade mal content in nen (leeren)mc rein... erst hat er 4 bytes, dann irgendwann hat auf einmal null bytes( was ja praktisch nicht mehr vorhanden ist, weil ja selbst ein völlig leerer mc 4 bytes haben muss scheinbar) und dann hat er auf einmal die mögliche endgröße. da gab´s mal vor urzeiten heiße diskussionen darüber, wie man es technisch fertig bringt mögl. elemente in einen 'container' zu transferieren, ohne diesen container sozusagen 'aufzubohren'. das war noch zu c64er zeiten... ich denke, dass ist der grund, warum man das array nicht einfach überschreiben kann... selbst ein: ActionScript:
kannst du zwar innerhalb der methode tracen, hat aber außerhalb keinerlei auswirkung auf das eigentliche objekt. da wird scheinbar auch nur die referenz überschrieben, aber nicht das array selbst... meine gedanken zu dem thema... greetz kelor |
| | |
![]() |
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
| |