IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MXML Discussion :

Custom component avec Flex


Sujet :

MXML

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    465
    Détails du profil
    Informations personnelles :
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 465
    Points : 154
    Points
    154
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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.

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    319
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2004
    Messages : 319
    Points : 417
    Points
    417
    Par défaut
    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à

Discussions similaires

  1. Custom Component et Custom event en flex
    Par othmane214 dans le forum MXML
    Réponses: 1
    Dernier message: 20/10/2011, 14h57
  2. TabNavigator avec custom component
    Par Yux dans le forum Flex
    Réponses: 7
    Dernier message: 15/01/2010, 15h11
  3. Problème avec un Custom component
    Par Mathieu.J dans le forum JSF
    Réponses: 5
    Dernier message: 28/05/2008, 14h04
  4. custom component en jsf. gerer les encodeChildren
    Par ouedmouss dans le forum JSF
    Réponses: 1
    Dernier message: 29/06/2006, 19h23
  5. [JSF] mon premier custom component
    Par anitshka dans le forum JSF
    Réponses: 5
    Dernier message: 14/06/2005, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo