Zurück   Flashforum > Flex und AIR > Flex programmieren

Antwort
 
LinkBack Themen-Optionen Ansicht
Alt 21-04-2011, 09:56   #1 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 152
Zugriff auf Gruppe durch id.

Hallo
ich habe eine id einer Gruppe als String vorliegen. Wie kann ich nun über AS 3 auf diese Gruppe zugreifen mit der speziellen ID.

Vielen dank schon mal.
Gruß
hothead89 ist offline   Mit Zitat antworten
Alt 21-04-2011, 10:09   #2 (permalink)
undefined
 
Benutzerbild von mildesign
 
Registriert seit: Jul 2001
Ort: Stuttgart
Beiträge: 1.839
ein String ist tricky

Flex stellt die "uniquenes" von ids sicher indem es die IDs zur compilezeit austauscht.

solche Geschichten wie

HTML-Code:
<s:Group id="test2"/>
kannst du später nicht mit

PHP-Code:
this["test"+"2"]; 
ansprechen da deine Gruppe unter Umständen jetzt 12389234902489234_test2 heißt;

--> Arbeite mit Referenzen und nicht mit Namen

Beschreibe bitte einmal deinen UseCase weshalb du eine Gruppe per Namen ansprechen möchtest
__________________
mfg Frank

Geändert von mildesign (21-04-2011 um 10:11 Uhr)
mildesign ist offline   Mit Zitat antworten
Alt 21-04-2011, 14:24   #3 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 152
Hallo,
danke schon mal für die rasche antwort.
also ich wollte folgendes verwirklichen.

Es ist eine dynamische Website. Das heißt, ich lade über https eine php datei und bekomme eine xml mit x verschiedenen bildern (sources) und ein text zu jedem bild. beim starten der application wird dann die xml geladen und dann über eine for-schleife die bilder in einer gruppe hinzugefügt. und die gruppe in eine bereits in mxml deklarierten gruppe hinzugefügt. jede gruppe wird standard auf visible false gesetzt und über ein menü kann dann das jeweilige bild mit text aufgerufen werden.

hier der prototyp:
Code:
m_xmlContent =	
					<contentStates>
						<content ContentID="Content_one">
							<picture PictureID="1" width="750" height="450">
								<URL>assets/layout/picture1.jpg</URL>
								<TEXT>Hier ist der Text für Bild1</TEXT>
							</picture>
							<picture PictureID="Content_two" width="650" height="450">
								<URL>assets/layout/bild.JPG</URL>
								<TEXT>Hier ist der Text für Bild2</TEXT>
							</picture>
						</content>
						<content ContentID="2">
							<picture PictureID="1" width="750" height="450">
								<URL>assets/layout/picture1.jpg</URL>
								<TEXT>Hier ist der Text für Bild1</TEXT>
							</picture>
							<picture PictureID="2" width="650" height="450">
								<URL>assets/layout/bild.JPG</URL>
								<TEXT>Hier ist der Text für Bild2</TEXT>
							</picture>
						</content>
					</contentStates>;

private function createContent() : void
{
// hier wird die gruppe erzeugt und der text und das jeweilige bild hinzugefügt
}
Jetz wollte ich das so verwirklichen dass wenn der user auf einen generierten button klickt soll die aktive gruppe auf visible false gesetzt werden und dann bekommt der button einen namen welcher übergeben wird und dadurch ergibt sich dann die contentgroupId. Somit hätte das ganz schnell geklappt.

bsp:

Code:
<s:Button id="one" label="{m_strLabeling}" skinClass="classes.skins.ButtonSkin" width="100%" height="100%" click="changePicture(event)"/>

private function changePicture ( event:MouseEvent ) : void
{
this[Content_"+m_strActiveID].visible = false;
this["Content_"+event.target.id.toString()].visible=true;
}
wie könnte ich das nun verwirklichen?

VIELEN DANK SCHON MAL
Gruß
Markus
hothead89 ist offline   Mit Zitat antworten
Alt 21-04-2011, 19:02   #4 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Ja nachdem was du machen willst, geht es einfacher oder schwerer. Ich würde das XML in ein Model parsen, einen Container bauen und dann das Model via DataBinding an die View binden. Dann hast du nur eine View und das ganze skaliert auch viel besser.
Omega Psi ist offline   Mit Zitat antworten
Alt 22-04-2011, 02:00   #5 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 152
wie würde das so ungefähr anhand eines Bsps. aussehen?
DANKE!
hothead89 ist offline   Mit Zitat antworten
Alt 22-04-2011, 14:49   #6 (permalink)
Perverted Hermit
 
Benutzerbild von Omega Psi
 
Registriert seit: Mar 2004
Ort: Delmenhorst
Beiträge: 12.142
Hast du Schimmel eine Flex Komponente entwickelt?
Omega Psi ist offline   Mit Zitat antworten
Alt 22-04-2011, 16:55   #7 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 152
momentan sieht es bei mir noch recht unstrukturiert aus da es nur ein prototyp ist.

hier mal der AS code
Code:
/*
			#################################################################
			XML Content
			#################################################################
			*/
			
			private var m_xmlContent:XML;
			
			private function setUpContent () : void
			{
				
				m_xmlContent =	
					<contentStates>
						<content ContentID="1">
							<picture PictureID="1" width="750" height="450">
								<URL>assets/layout/picture1.jpg</URL>
								<TEXT>Hier ist der Text für Bild1</TEXT>
							</picture>
							<picture PictureID="2" width="650" height="450">
								<URL>assets/layout/bild.JPG</URL>
								<TEXT>Hier ist der Text für Bild2</TEXT>
							</picture>
						</content>
						<content ContentID="2">
							<picture PictureID="1" width="750" height="450">
								<URL>assets/layout/picture1.jpg</URL>
								<TEXT>Hier ist der Text für Bild1</TEXT>
							</picture>
							<picture PictureID="2" width="650" height="450">
								<URL>assets/layout/bild.JPG</URL>
								<TEXT>Hier ist der Text für Bild2</TEXT>
							</picture>
						</content>
					</contentStates>;
				
				createContent();
			}
			
			private function createContent () : void
			{
				var i:int;
				for ( i = 0; i < m_xmlContent.content.length(); i++ )
				{
					var tempGroup:Group = new Group();
					tempGroup.id = m_xmlContent.content[i].@ContentID.toString();
					tempGroup.right = 0;
					tempGroup.visible = false;
								
					var j:int;
					for ( j = 0; j < m_xmlContent.content[i].picture.length(); j++ )
					{
						var tempPicture:Image = new Image();
						tempPicture.maintainAspectRatio = false;
						tempPicture.source = m_xmlContent.content[i].picture[j].URL.toString();
						tempPicture.id = m_xmlContent.content[i].picture[j].@PictureID.toString();
						tempPicture.height = int(m_xmlContent.content[i].picture[j].@height);
						tempPicture.width = int(m_xmlContent.content[i].picture[j].@width);
						tempPicture.right = 0;
						
						if (j == 0)
							tempPicture.visible = true;
						else
							tempPicture.visible = false;
						
						tempGroup.addElement( tempPicture );
					}
					
					ImagesForContents.addElement( tempGroup );
					
				}
			}
setUpContent() wird direkt nach crationCompete of Application aufgerufen.
Aus Layoutgründen wird eine Tempgroup erstellt welche in eine komponente eingefügt wird.

Code:
<s:Group id="ImagesForContents" width="800" height="450" right="0"/>
Nun dachte ich eben, dass ich dann wenn ich eine ID als string habe ich die dazugehörte Group auf visible gesetzt wird und die aktive eben auf invisible.

Wie genau könnte ich das nun umbauen?
hothead89 ist offline   Mit Zitat antworten
Alt 22-04-2011, 20:09   #8 (permalink)
Neuer User
 
Registriert seit: Jul 2009
Beiträge: 152
ich habe das ganze jetz mit einem dict gelöst

Code:
m_dictImagesGroup[m_xmlContent.content[i].@ContentID.toString()] = tempGroup;
nun kann ich das ganze wieder mit der ID auf das richtig element zugreifen.
wenn es noch ein effizientere lösung gibt bin ich geren ganz ohr

danke schonmal für jegeliche hilfe
hothead89 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


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Zugriff auf Private Variablen durch TestUnit (FlexUnit) Swuf Flex programmieren 3 22-05-2009 06:01
[Flash CS3] Flash hat kein Zugriff durch htaccess sashmaaan Flash Einsteiger 6 22-02-2009 20:43
Verliere ich durch ein Interface den Zugriff auf Klassenfunktionen? readme.txt ActionScript 2 2 15-05-2008 14:45
Zugriff auf durch createElement erzeugte Elemente TinKim JavaScript & jQuery 6 22-11-2007 10:24
Zugriff auf Klassenvariable durch get Methode Jo3000 ActionScript 2 11 24-02-2006 14:03


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:31 Uhr.

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


Copyright ©1999 – 2012 Marc Thiele