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

ActionScript 3 Discussion :

classe externe et base de données


Sujet :

ActionScript 3

  1. #1
    Candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut classe externe et base de données
    Bonjour à tous,

    Je suis débutant en flex et cela fait un petit moment que je croche sur un problème.
    J'utilise une classe externe SuperPanel qui peut être téléchargée à cet endroit: http://www.wietseveenstra.nl/blog/20...uperpanel-v15/ dont les propriétés height et width sont définis dans une base de données. Une des fonctionnalités de cette classe est de pouvoir redimensionner les panels et par conséquent, une petite flêche apparait normalement en bas à droite de chaque panel. Bien entendu pour qu'elle apparaisse à cet endroit, il faut que la hauteur et la largeur du panel soit connues, d'où mon problème.

    J'ai bien une méthode qui est exécutée au démarrage de l'application et va chercher dans la base de données les valeurs mais trop tard. A voir la classe a déjà été initialisée et par conséquent la hauteur et la largeur valent 0 ce qui à pour conséquence que la flêche apparait en haut à gauche.

    Est-ce que quelqu'un sait s'il y a moyen de retarder l'initialisation de la classe ou connait un moyen de s'affranchir de ce problème.

    D'avance merci de votre aide.

  2. #2
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Points : 84
    Points
    84
    Par défaut placement
    slt sans ton code pas facile de t'aider.
    mais cela semble etre une lacune au niveau du cycle de vie des composants.
    mais sans code pas facile .....

    donc du code ......

    A+

  3. #3
    Candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut code
    Pardon, voici mon code. Pour la classe SuperPanel, elle est accessible à l'URL ci-dessus.

    La partie init
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    servRO.getOperation('getWindowsSize').send(q);
    La partie qui se connecte en amfphp à la basse de donnée
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <mx:RemoteObject id="servRO"
            source="servWallboard" 
            endpoint="./amfphp/gateway.php" 
            destination="amfphp" 
            showBusyCursor="true">
            <mx:method name="setPos" result="saveOK(event)"/>
            <mx:method name="setCol" result="saveOK(event)"/>
            <mx:method name="getColor" result="resultC_OK(event)"/>
            <mx:method name="getWindowsSize" result="resultWSP_OK(event)"/>
    </mx:RemoteObject>
    Le résultat de la connexion à la base
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    private function resultWSP_OK(e:ResultEvent):void
                {
                    rsWSP = e.result as Array;
                }
    La partie définition du panel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <ext:SuperPanel
            id="winTotalCall" uid="0"
            layout="absolute" showControls="false" enableResize="true" visible="false" 
            x="{rsWSP[winTotalCall.uid][2]}" y="{rsWSP[winTotalCall.uid][3]}" width="{rsWSP[winTotalCall.uid][4]}" height="{rsWSP[winTotalCall.uid][5]}"
            title="Nombre d'appel total">
            <mx:VBox height="100%" width="100%" textAlign="center">
                <mx:Text id="txtTotalCall_N" text="0" height="80%" width="100%" fontSize="{rsWSP[winTotalCall.uid][7]}" resize="resizeWindow(txtTotalCall_N)"/>
                <mx:Text id="txtTotalCall_L" text="{winTotalCall.title}" height="20%" width="100%" fontSize="{rsWSP[winTotalCall.uid][8]}" resize="resizeWindow(txtTotalCall_L)"/>
            </mx:VBox>     
    </ext:SuperPanel>
    Voilà j'espère qu'il y en a suffisamment

  4. #4
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Points : 84
    Points
    84
    Par défaut resize panel
    slt

    je pense que le soucis vient du fait que tu n'initialise pas la largeur et la hauteur de ton panel lorsque ton remote object est complete.
    pour ca, j'essaierais de faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    private function resultWSP_OK(e:ResultEvent):void
                {
                    rsWSP = e.result;
     
                   winTotalCall.width=  rsWSP.width;
                   ect .....
                }

    j'ai supprimmé ton cast en array qui pour moi ne sert a rien , j'utilise le type renvoyé par RPC soit arrayCollection ensuite j'affecte les valeures aux panel.
    je considere dans mon exemple que dans ton arrayCollection (ta requete ) tu as une propriétée nomé width pour la largeur de ton panel.

    tu peux meme dans ce cas ne pas remplir le width et height dans ta definition mxml de winTotalCall, je pense que l'auteur a du donnée des valeures par defaut qui seront ecraser par les tiennent lorsque ton rpc sera complet

    hope to help you

  5. #5
    Candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Salut,
    Merci pour ta réponse malheureusement cela ne change rien.
    Le truc c'est que la taille de la fenêtre est juste, elle correspond bien à ce qu'il y a dans la DB mais c'est juste la flêche pour la redimensionner qui ne se trouve pas au bonne endroit. Par contre dès que je la redimensionne, elle se met au bonne endroit soit en bas à droite.
    J'ai fait un test et mis une alert dans la classe superpanel. En effet l'alert apparait au lancement du programme alors qu'il n'a pas encore exécuter la méthode init(). Du coup les valeurs height et width valent 0.
    As-tu une idée ?

  6. #6
    Membre régulier
    Inscrit en
    Janvier 2008
    Messages
    165
    Détails du profil
    Informations forums :
    Inscription : Janvier 2008
    Messages : 165
    Points : 84
    Points
    84
    Par défaut resize
    re
    as tu essayé invalidatDisplayList() sur ton composant super panel ,ce qui aura pour effet d'obliger a recalculer la list d'affichage et peut etre de placer au bon endroit la fleche. c'est ce que doit faire le code lorsque tu redimensionne ton panel.
    peut etre que si cette classe superPanel te permet par une prop de masquer la fleche, alors tente de la masquer puis de l'afficher de nouveaux, c'est juste une idée.
    je ne connait pas cette classe et j' ai pas le tps de faire un essais.

    A+

  7. #7
    Candidat au Club
    Inscrit en
    Octobre 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Super, j'ai trouvé grâce à ton aide.
    J'ai juste ajouté le code ci-dessous dans ma classe SuperPanel et ça fonctionne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    override protected function updateDisplayList(unscaledWidth:Number,unscaledHeight:Number):void
    {
                 super.updateDisplayList(unscaledWidth,unscaledHeight);	
    	this.positionChildren();
    }
    En tout cas merci beaucoup pour ton aide.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [PHP 5.3] Classes simples et base de données
    Par Bakura dans le forum Langage
    Réponses: 5
    Dernier message: 18/10/2009, 14h34
  2. Nom des classes dans la base de données.
    Par chriscoolletoubibe dans le forum JPA
    Réponses: 3
    Dernier message: 14/09/2009, 10h09
  3. diagramme de classe pour un base de donnée
    Par gentelmand dans le forum Diagrammes de Classes
    Réponses: 5
    Dernier message: 23/05/2009, 00h30
  4. Réponses: 3
    Dernier message: 31/03/2007, 10h18
  5. chargement d'un fichier externe en base de données
    Par samsbike dans le forum Administration
    Réponses: 3
    Dernier message: 24/08/2004, 17h35

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