Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex
Flex Forum d'entraide sur la programmation Adobe Flex : applications Internet riches (RIA)
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 18/09/2011, 23h08   #1
Invité régulier
 
Inscription : février 2008
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 26
Points : 8
Points : 8
Par défaut Selection d'enfant d'enfant

Bonsoir,

Je souhaiterai créer plusieurs "page" contenant une List (spark), pour celà , j'utilise un ViewStack que je rempli de NavigatorContent (mes pages) que je rempli ensuite d'une List., tout ça de façon dynamique, sans recourir au mxml (à part pour le ViewStack). Le code est donc le suivant :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
<fx:Script>
 
	function ajouter():void
	{
		var id = 6;
		//[...]
		var liste:List = new List();
		var nav:NavigatorContent = new NavigatorContent();
 
		nav.name 	= "tab_"+id;
		liste.name 	= "msg_"+id;
 
		liste.itemRenderer = new ClassFactory(itemRenderer.message);
		liste.setStyle('skinClass', Class(skin.message));
 
		nav.addElement(liste);
 
		tabs.addChild(nav);
	}
 
	function ecrire(str:String):void
	{
		var nav:DisplayObject = tabs.getChildByName("tab_"+uid);
 
		var liste:List = ??? // J'ai testé nav.getChildAt, getChildByName ect.. rien ne semble fonctionner
 
		liste.dataProvider.addItem({'message':str});
	}
 
</fx:Script>
<mx:ViewStack id="tabs">
	<!--s:NavigatorContent>
		<s:List id="test" itemRenderer="itemRenderer.message"  skinClass="skin.message">
		</s:List>
	</s:NavigatorContent-->
</mx:ViewStack>
L'appel de la fonction "ajouter" crée le code qui est comanté a l'intérieu du ViewStack.

Ma question : comment puis-je compléter la troisième ligne de la fonction "ecrire" pour arriver a accéder a ma liste ??? Je galère sur ce "détail" depuis quelques jours, et j'aimerai bien arriver a comprendre le fonctionnement de la navigation dans du mxml crée a la volé sans avoir recours aux id.

Et est-ce que le fait de skinner ma liste peut pauser problème pour naviguer dans le mxml ? J'ai remarqué que si je caste le premier retour de getChildByName en UIComponent, après un getChildAt(0) sur le résultat j’obtiens ça "[..].tabs.tab_6.SkinnableContainerSkin97" alors que je m’attendais plutôt a ça "[..]..tabs.tab_6.msg_6".

Bonne fin de soirée, ou bon début de semaine.
Equilibrius est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 19/09/2011, 10h08   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 279
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 279
Points : 2 327
Points : 2 327
Bonjour,

essaie le getElementAt
__________________
Je ne réponds pas aux questions envoyées par mp
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/09/2011, 00h16   #3
Invité régulier
 
Inscription : février 2008
Messages : 26
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 26
Points : 8
Points : 8
Bonsoir,

ne fonctionne pas :/

J'ai pourtant testé quelques cast que j'ai pu trouver sur google mais rien n'est vraiment concluant.

Citation:
conversion de spark.components::NavigatorContent@10c5ccf1 en mx.core.Container impossible.
Container() > pour avoir accée aux getElement.. / getChild..

EDIT : Problème en partie résolue (je pense, j'ai besoin de tester plus en détail)

ce qui ma aidé : http://help.adobe.com/en_US/Flex/4.0...2b90-7fe9.html

Après avoir lu le tableau j'ai remplacé les "NavigatorContent" (Spark) par des "Canvas" (MX) et du coup j'ai eu accès a ma liste :D
Equilibrius est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h23.


 
 
 
 
Partenaires

Hébergement Web