Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flex > MXML
MXML Questions relatives au format MXML
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 17/05/2011, 17h57   #1
Membre habitué
 
Inscription : janvier 2007
Messages : 465
Détails du profil
Informations personnelles :
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : janvier 2007
Messages : 465
Points : 118
Points : 118
Par défaut Custom component avec Flex

Bonjour,
Je voulais créer un custom component pour la gestion de fenêtres dynamiques. L'idée est de créer un canvas contenant deux panels. Et après, permettre l'ajout des éléments dans ces panels.

Pour ce faire j'ai créé:
- une classe qui hérité du Canvas appelée "WindowControler".
- un MXML component appelé "WindowContainer" comme suit:

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
37
38
39
40
41
42
 
<?xml version="1.0" encoding="utf-8"?>
<s:Group xmlns:fx="http://ns.adobe.com/mxml/2009" 
		 xmlns:s="library://ns.adobe.com/flex/spark" 
		 xmlns:mx="library://ns.adobe.com/flex/mx"  
		 xmlns:window="window.*">
 
 
	<fx:Declarations>
		<!-- Place non-visual elements (e.g., services, value objects) here -->
		<fx:String id="iconeHeaderSource"/>
		<fx:Number id="iconeHeaderHeight"/>
		<fx:Number id="iconeHeaderWidth"/>
		<fx:Number id="iconeHeaderXLocation"/>
		<fx:Number id="iconeHeaderYLocation"/>
 
 
		<fx:String id="iconeResizeSource"/>
		<fx:Number id="iconeResizeHeight"/>
		<fx:Number id="iconeResizeWidth"/>
 
	</fx:Declarations>
 
	<fx:Style source="WindowCSS.css" />	
 
 
	<window:WindowControler id="controler"  
							view="{this}"
							height="100%" width="100%"							
							creationComplete="{controler.init()}">
 
		<mx:Panel id="panelPrincipal" title="Panel Principal" x="30" y="30">
 
			<mx:Panel id="panelContent">
 
			</mx:Panel>
		</mx:Panel>
 
 
 
	</window:WindowControler>
</s:Group>
Et je l'appelle dans l'application comme suit:
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
 
<?xml version="1.0"?>
<!-- dragdrop\DandDImage.mxml -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
				xmlns:s="library://ns.adobe.com/flex/spark"
				horizontalAlign="left"
				xmlns:window="window.*">
 
 
	<window:WindowContainer id="conteneur"
		iconeHeaderSource="D:/Flex Projects/assets/icone.png"
		iconeHeaderHeight="50"
		iconeHeaderWidth="50"
		iconeHeaderXLocation="0"
		iconeHeaderYLocation="0"
 
		iconeResizeSource="D:/Flex Projects/assets/resizeIcone.png"
		iconeResizeHeight="16"
		iconeResizeWidth="16">
		<window:panelContent>
				<mx:Button label="test">
 
				</mx:Button>
		</window:panelContent>
 
	</window:WindowContainer>
 
</mx:Application>
Mais lorsque je veux ajouter des éléments dans le panel "panelContent" (un bouton par exemple), j'ai le message d'erreur "In initializer for 'panelContent', type mx.controls.Button is not assignable to target type 'mx.containers.Panel'."
Pourriez vous m'aider à résoudre le problème?
Merci d'avance.
choko83 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/05/2011, 15h19   #2
Membre éclairé
 
Inscription : janvier 2004
Messages : 319
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : janvier 2004
Messages : 319
Points : 384
Points : 384
En fait tu es tombé dans un piege car flex ne fonctionne pas comme ça
Ce que te dit le player c'est que tu essaie d'assigner un Boutton à une variable de type Panel!!!
des carrés dans des trous en gros

Idéalement, tu dois faire un override en AS3 de la methode addChild pour ajouter non pas dans ta vue (ton s:Group) mais dans ton Panel
En gros il suffit de "déléguer" l'ajout de composant enfant
voilà
Kantizbak 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 13h53.


 
 
 
 
Partenaires

Hébergement Web