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 :

URLRequest et nom de classe d'un objet


Sujet :

ActionScript 3

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut URLRequest et nom de classe d'un objet
    Bonjour,
    j'ai actuellement 2 problèmes liés à l'affichage d'une image dans un projet "air" en actionscript 3 que je réalise avec flashDevelop:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    protected function afficher(laForme:Forme):void {
    var image:String = getQualifiedClassName(laForme);
    //créer un conteneur d'image
    var conteneurImage:Loader = new Loader();
    var cheminImg:URLRequest = new URLRequest("C:/.../img/" + image + ".png");
    			...La suite de la fonction...

    - Premièrement l'image à afficher dépend de l'objet passé en paramètre à la fonction d'affichage:
    j'ai 2 classes "carré" et "triangle" qui hérite d'une 3eme nommé "forme".
    je passe donc une "forme" en paramètre à afficher()
    et ces formes sont dans un package du même nom (formes)
    lorsque j'utilise getQualifiedClassName(forme) le retour est "formes::laForme"
    comment obtenir seulement le nom de la forme concerné ?

    - Ensuite, je n'arrive pas à définir le chemin d'accès à l'image:
    les images se trouvent dans un dossier "img" dans le même package que mes classes (formes)
    je suis obliger de définir le chemin d'accès complet depuis le lecteur C: pour que l'url soit valide
    comment recréer ce chemin dynamiquement pour qu'il s'adapte lors du démarrage de l'application ?

  2. #2
    Membre Expert Avatar de Madfrix
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    2 326
    Détails du profil
    Informations personnelles :
    Localisation : France, Gironde (Aquitaine)

    Informations forums :
    Inscription : Juin 2007
    Messages : 2 326
    Par défaut
    bonjour,

    j'ai pas testé le getQualifiedClassName() mais si cela ne marche pas comme tu le dis et que tu as seulement 2 classes possibles pour Forme, pourquoi ne pas tester quelque chose comme cela ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    protected function afficher(laForme:Forme):void
    {
       if(laForme is Carre)
            Alert.show("Je suis un carré !");
       else
            Alert.show("Je suis un triangle !");
     
    }

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    12
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 12
    Par défaut
    Le but serai enfaite d'afficher une image en fonction de la forme passé à afficher() via un loader.
    Je pourrais effectivement faire un switch traitant tout les cas possible ou faire une surcharge de la fonction sur les classes filles mais j'aurais aimé trouver une solution plus "propre"
    Le problème le plus contraignant reste celui du chemin d'accès définie via URLrequest...

  4. #4
    Rédacteur

    Avatar de The_Pretender
    Homme Profil pro
    Formateur Développement / Programmation
    Inscrit en
    Juin 2004
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : Formateur Développement / Programmation
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2004
    Messages : 739
    Par défaut
    Bonjour,

    Lorsque tu compiles ton swf, les classes (laForme:Forme, Carre) doivent être intégrées.

    Dans ton code, ajoute le nom de tes classes dans un tableau pour forcer leur inclusion dans le swf compilé.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    import com.forme.Carre;
    import com.forme.Triangle;
     
    // permet de forcer l'inclusion des classes lorsqu'elles ne sont pas utilisées directement
    public static var linkages:Array = [Carre, Triangle];
    J'utilise cette astuce dans ce tutoriel sur la création d'un mini flex à partir d'un fichier xml.
    Réclamez La Méthode Développement Facile pour Créer Rapidement des Applications Performantes sur Mobiles et Ordinateurs : Développement Facile

    Développez des Applications Web Performantes avec la Formation Vidéos Developpez : Programmation Facile

    Découvrez : Tutoriels, ressources AS2 et AS3

Discussions similaires

  1. Créer un nouvel objet à partir du nom de la classe de l'objet
    Par gueuldange dans le forum Débuter avec Java
    Réponses: 2
    Dernier message: 13/04/2015, 21h37
  2. Réponses: 3
    Dernier message: 30/05/2008, 11h31
  3. [IL]Instancier un objet à partir de son nom de classe
    Par neo.51 dans le forum Framework .NET
    Réponses: 2
    Dernier message: 08/08/2007, 11h43
  4. [POO] Récupérer le nom de la classe d'un objet
    Par boux2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 16/04/2007, 09h13

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