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 29/08/2007, 23h01   #1
Invité de passage
 
Inscription : août 2007
Messages : 2
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2007
Messages : 2
Points : 1
Points : 1
Par défaut [AS3] Problème d'import de classes perso.

Bonjour,

Tout nouveau sur ce forum, ça fait deux soirs que je cherche désespérement une solution à mon problème.

Je bidouille flash depuis quelques années.

Mon problème est le suivant.
Je suis dans mon répertoire D:\flash\ (pour faire plus simple)
J'ai deux fichiers dans ce répertoire :
Un "Affichage.as" qui contient:
Code :
1
2
3
4
5
class Affichage {
	function Affichage(){
		trace("coucou");
	}
}
et un "www.fla" avec une action sur la seule première image :
Code :
1
2
import Affichage; 
var aff:Affichage = new Affichage();
Donc voilà, normalement rien de bien compliqué.

Seulement, à la compilation AS3, j'obtiens ce message d'erreur :
Citation:
1046: Ce type est introuvable ou n'est pas une constante de compilation : Affichage. => var aff:Affichage = new Affichage();
1180: Appel à une méthode qui ne semble pas définie, Affichage. => var aff:Affichage = new Affichage();
Quand je compile en AS2, ça marche.

Je retourne le problème dans tous les sens depuis hier, et ça ne veut pas marcher... alors que la classe est bien importée apparement, puisque je n'ai pas d'erreur lors de l'import seul.
J'ai essayé de compiler et d'appeler des classes internes de flash genre : flash.display.BitmapData... ça fonctionne bien ...
J'ai retourné tous les LiveDocs que j'ai trouvé (et je peux vous dire que j'ai appris à les décrytper avec le temps ), fait tous les tests que j'ai pu imaginer... et ça ne veut toujours pas compiler...

Alors avant de craquer, je pose la question ici ...
Quelqu'un a une idée, une piste?

Merci d'avance!
Toph' est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 09h56   #2
Membre régulier
 
Inscription : janvier 2007
Messages : 186
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2007
Messages : 186
Points : 90
Points : 90
Bonjour,
Premièrement, tu dois définir tes classes dans un package.
Deuxièment en AS3 lorsque tu definis une classe, une méthode ou une variable de classe sans les mots clef 'private' ou 'public', l'attribut 'private' est appliqué par defaut.

Code :
1
2
3
4
5
6
7
8
 
package{
    public class Affichage {
        function Affichage(){
            trace("coucou");
        }
    }
}
tom42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/08/2007, 10h12   #3
Invité de passage
 
Inscription : août 2007
Messages : 2
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : août 2007
Messages : 2
Points : 1
Points : 1
OK, merci Tom...
J'avais compris cette histoire de package, mais comme la classe était à la racine, je me disais que ce n'était pas nécessaire.
Et je coyais que c'était l'attribut public qui avait la "priorité" ...
D'ailleurs dans ton exemple, tu n'as pas mis 'public' sur le constructeur, c'est normal ? (effectivement, j'avais cru lire que le constructeur était forcément public - ce qui parait logique - mais comme tu dis que le private s'applique par défault aux noms de classe et méthodes ... je demande toujours, on sait jamais )

Je ferai le test de ce bout de code ce soir (je suis au taf là)
Je te tiendrais au courant... merci beaucoup en tout cas.
Toph' est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h38.


 
 
 
 
Partenaires

Hébergement Web