Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 11-01-2009, 21:18   #1 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
componentType abfrage

hi, wie kann man den componentType abfrage? folgendes scheintnciht zu funktionieren, gibt aber auch keine fehler aus:

Code:
for(var a:int = 0; a < 8; a++ ){
            			
           if(tmpForm.getChildAt(a).componentType != mx.controls.Label){
           	newArray[i][a] = tmpForm.getChildAt(a);
          }
            			
 }
vielen Dank,
phase
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Alt 11-01-2009, 21:53   #2 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Der is Operator ist an dieser Stelle zu benutzen.
Omega Psi ist offline   Mit Zitat antworten
Alt 12-01-2009, 00:02   #3 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
Zitat:
Zitat von Omega Psi Beitrag anzeigen
Der is Operator ist an dieser Stelle zu benutzen.

hhhmm... ok, ich habs jetzt so:

Code:
if(tmpForm.getChildAt(a) is controls.customTextInput || tmpForm.getChildAt(a) is controls.customEditor ){
            				newArray[i][a] = tmpForm.getChildAt(a).text;
            			}
das scheint irgendwie noch nicht so recht zu funktionieren. eins der Childs ist ein mx.controls.Label, das will ich nicht habe. wenn ich den Typ wie oben abfrage, füllt er mir den Array erst nach dem Label.

ich versteh das nicht so recht...
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Alt 12-01-2009, 08:47   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Naja, aus 3 Zeilen Code kann man nur schwer herauslesen, wo das Problem luegen könnte. Anscheinend erwartest du dein Label in einer bestimmten Tiefe... aber dort ist das Child nicht.
Omega Psi ist offline   Mit Zitat antworten
Alt 12-01-2009, 09:00   #5 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
naja, viel mehr code ist es ja nicht ;-)

hier die ganze funktion:

Code:
private var newArray:Array = new Array();
            
            private function createNewArray():void
            {
            	
            	for(var i:int = 0; i < addNewChild; i++ ){
            		
            		newArray[i] 		= new Array();
            	  	var tmpForm:Object 		= myAccordion.getChildAt(i);
             		
            		for(var a:int = 0; a < 7; a++ ){
            			
            			if(tmpForm.getChildAt(a) is controls.customTextInput || tmpForm.getChildAt(a) is controls.customEditor ){
            				newArray[i][a] = tmpForm.getChildAt(a).text;
            			}
            			
            		}
 
            	}
            	
            	Alert.show(newArray.toString());
            	//test();
            }
Damit soll er alle Childs von myAccordion durchlaufen und diese dann wieder in der 2. schleife durchlaufen. das sollte eigentlich ein mehrdiensionales Array füllen, was es ja auch tut nur halt nicht wenn ich die abfrage des componentTypes drin habe. dann fängt er erst bei dem label an.

das Laybel wird nicht an einer bestimmten stelle erwartet. er soll einfach alle Labels aussen vor lassen.

hoffe es ist jetzt klar geworden, sonst muss ich mal ein beispiel erstellen.

Gruß und danke,
phase
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Alt 12-01-2009, 09:11   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.146
Und es wurden auch alles Children erzeugt?
Omega Psi ist offline   Mit Zitat antworten
Alt 12-01-2009, 12:12   #7 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
ja, es sind alle da. wenn ich das if und die eigenschaft text weglasse, also so:

Code:
for(var a:int = 0; a < 8; a++ ){
            			

           	newArray[i][a] = tmpForm.getChildAt(a);

            			
 }
werden ja auch alle in den array gepackt. deswegen verstehe ich das ganze nicht so recht. das label kommt an 3. stelle und danach kommen noch weitere textinputs.
__________________
--
Don't eat yellow snow
phase ist offline   Mit Zitat antworten
Alt 12-01-2009, 15:25   #8 (permalink)
n00b
 
Registriert seit: Jun 2005
Beiträge: 271
ok, ich hab es jetzt so gelöst, dass ich die Labels etc ans ende anfüge und dann positioniere. die schleife begrenze ich dann so, dass die letzten children nicht mehr durchlaufen.

ist zwar nur ein workaround und ich ich weiß immer noch nciht warum das nciht geht aber so klappt es wenigstens.

gruß,
phase
__________________
--
Don't eat yellow snow
phase 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 10:05 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele