FAQ Flash MX 2004

FAQ Flash MX 2004Consultez toutes les FAQ
Nombre d'auteurs : 5, nombre de questions : 81, dernière mise à jour : 16 juin 2021
 Sommaire→Programmation Orientée Objets
Sommaire→Programmation Orientée ObjetsImportation des classes :
import SimpleClasseImportee; // Importe la classe "SimpleClasseImportee" située au même niveau que l'animation
import repertoireLibrary.ClasseImportee;  // Importe la classe "ClasseImportee" située dans le répertoire "repertoireLibrary"
...Déclaration de la classe :
class NomDeLaClasse { // Si la classe se trouve au  même niveau que l'animation
ou
class repertoireLibrary.NomDeLaClasse { // Si la classe est située dans le répertoire "repertoireLibrary" 
ou
class NomDeLaClasse extends repertoireLibrary.NomDeLaClasseHeritee { // si la classe hérite de la classe "NomDeLaClasseHeritee"Déclaration de la classe :
var sVar1:String:
var nVar2:Number;
var ...;Contructeur
public NomDeLaClasse (nArg1:Number, sArg2:String, ...) {
    ...
}Fonctions avec retour
public function nomDeLaFonction (...):TypeDeRetour { // TypeDeRetour est le type (String, Number ...) de la valeur renvoyée. 
    ...
    return ...;
}Fonctions sans retour
public function nomDeLaFonction (...):Void { 
...
}
ou 
public function nomDeLaFonction (...) { 
...
}Fermeture de la classe
}Lien : Création de classes personnalisées
Lien : Créer un composant
Cela vient probablement d'un problème d'allocation de la mémoire. Cette erreur peut se produire dans la plupart des langages orientés objet.
Il ne faut pas allouer l'espace mémoire directement à la déclaration de l'attribut en question.
Class MaClasse{
    private var _tab:Array = new Array();
 
    //constructeur
    function MaClasse(){
    }
 
    public function setTabl(tab:Array):void{
        _tab = tab;
    }
}Dans cet exemple _tab aura toujours la valeur de la dernière instance, peu importe l'instance.
Une solution est donc d'allouer l'espace mémoire dans le constructeur :
class MaClasse{
    private var _tab:Array;
 
    //constructeur
    function MaClasse(){
        _tab = new Array();
    }
 
    public function setTabl(tab:Array):void{
        _tab = tab;
    }
}Dans cette seconde classe, l'attribut _tab aura une valeur unique pour chaque instance.




