Zurück   Flashforum > Flash > ActionScript > ActionScript 1

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 27-07-2006, 10:12   #1 (permalink)
angry > always
 
Benutzerbild von ingohill
 
Registriert seit: Jul 2001
Ort: NRW
Beiträge: 1.635
array.protoype erzielt keine veränderung

hi,

ich habe ein mehrdimensionales array, welches ich mit diesem prototype bearbeite.

PHP-Code:
Array.prototype.angleichen = function () {
    var 
temp    = new Array(0);
    for(
j=1,cnt=0j<6j++,cnt=0)
    {
        for (
i=0i<this.lengthi++) {
            if(
this[i]['xml_drop'] == "zone"+j)
            {
                if(
cnt<4temp.push(this[i]);
                
cnt++;
            }
        }
    }
    
delete this;
    for (
i=0i<temp.lengthi++) {
        
this[i] = temp[i];
    }
}

trace(xml_tmp.length );
xml_tmp.angleichen();    
trace(xml_tmp.length ); 
die function arbeitet wie sie soll, nur wird am ende das array nicht geändert, sondern beibehalten. in diesem beispiel sollen einige einträge herausfallen, mit einem überprüfenden trace funktioniert das auch, nur das array ändert sich nicht.

-ingo
__________________

on air: caliban | neaera | heaven shall burn | hatebreed | the agony scene
ingohill ist offline   Mit Zitat antworten
Alt 27-07-2006, 10:25   #2 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
>delete this;
Was hat es mit dieser Zeile auf sich?

>for (i=0; i<temp.length; i++) {
> this[i] = temp[i];
>}
Es wird doch nur das neue Array über das alte geschrieben.
Aber ich sehe nicht, daß die übrigen Array-Postionen gelöscht
werden. Wie soll sich also die Länge ändern?

gruß, gaspode

Geändert von gaspode (27-07-2006 um 10:27 Uhr)
gaspode ist offline   Mit Zitat antworten
Alt 27-07-2006, 10:27   #3 (permalink)
angry > always
 
Benutzerbild von ingohill
 
Registriert seit: Jul 2001
Ort: NRW
Beiträge: 1.635
das ist pure verzweifelung gewesen.

-ingo
__________________

on air: caliban | neaera | heaven shall burn | hatebreed | the agony scene
ingohill ist offline   Mit Zitat antworten
Alt 27-07-2006, 10:34   #4 (permalink)
Der Wunderhund
 
Benutzerbild von gaspode
 
Registriert seit: Jun 2002
Ort: Hattingen
Beiträge: 10.515
Ich hatte bei #2 noch was drangehängt.
Hast Du das gesehen?

gruß, gaspode
gaspode ist offline   Mit Zitat antworten
Alt 27-07-2006, 12:02   #5 (permalink)
angry > always
 
Benutzerbild von ingohill
 
Registriert seit: Jul 2001
Ort: NRW
Beiträge: 1.635
jetzt ja.
nun mit delete lösche ich das array und baue ich wieder neu auf,
um die verworfene einträge nicht zu übernehmen.

bei der durchsicht hat es sicher ergeben, das die länge gleich bleibt, die gelöschten einträge aber 'undefined' sind. das habe ich im späteren ablauf berücksichtig und es klappt auch. ich frage mich nur, warum die length des array sich nicht verändert..

-ingo
__________________

on air: caliban | neaera | heaven shall burn | hatebreed | the agony scene
ingohill ist offline   Mit Zitat antworten
Alt 28-07-2006, 00:49   #6 (permalink)
Techniker
 
Benutzerbild von hgseib
 
Registriert seit: Sep 2003
Ort: 64807
Beiträge: 16.321
was geht ist z.b. die length-variable ändern oder z.b. pop und splice gehen.
Code:
Array.prototype.test = function() {
	this[5] = "anna";
	for (var i in this) {
		trace(i+": "+this[i]);
	}
	//this.length = 2;
	//this.pop();
	this.splice(1, 4);
};
//
xxx = ["hans", "franz", "ganz"];
xxx.test();
trace(xxx+" -- "+xxx.length);
__________________
die ultimative antwort auf alle programmierfragen: der debugger
mfg h.g.seib www.SeibsProgrammLaden.de

Geändert von hgseib (28-07-2006 um 01:22 Uhr)
hgseib 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 11:34 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele