Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > Flash/Flex > Flash > AS3
AS3 Questions relatives à la programmation ActionScript 3 (Cours AS3)
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 21/12/2010, 12h05   #1
Invité de passage
 
Inscription : mai 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 11
Points : 1
Points : 1
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 :
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 ?
YoshK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/01/2011, 23h05   #2
Membre Expert
 
Avatar de Madfrix
 
Inscription : juin 2007
Messages : 2 278
Détails du profil
Informations personnelles :
Localisation : France, Gironde (Aquitaine)

Informations forums :
Inscription : juin 2007
Messages : 2 278
Points : 2 324
Points : 2 324
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 :
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 !");
 
}
Madfrix est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 07/01/2011, 14h32   #3
Invité de passage
 
Inscription : mai 2009
Messages : 11
Détails du profil
Informations forums :
Inscription : mai 2009
Messages : 11
Points : 1
Points : 1
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...
YoshK est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/03/2011, 13h19   #4
Rédacteur
 
Avatar de The_Pretender
 
Homme Matthieu DELOISON
Formateur ActionScript Flash
Inscription : juin 2004
Messages : 645
Détails du profil
Informations personnelles :
Nom : Homme Matthieu DELOISON
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Formateur ActionScript Flash
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : juin 2004
Messages : 645
Points : 3 673
Points : 3 673
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 :
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.
__________________
Découvrez : Tutoriels, ressources AS2 et AS3
La Méthode AS3 Facile pour développer des applications et jeux Flash en ActionScript 3 : ActionScript-Facile.com
The_Pretender est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h39.


 
 
 
 
Partenaires

Hébergement Web