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 :

Utiliser une classe dans une autre


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut Utiliser une classe dans une autre
    Bonjour,

    J'ai créé une classe "Case" étendant MovieClip pour gérer des temps d'attente au niveau d'une image précise dans un MovieClip.
    J'ai une autre classe, "Planche", qui charge des SWF utilisant cette classe Case.

    Jusqu'à présent, j'utilisais ce SWF en tant que MovieClip et ça fonctionnait sans problème, les temps d'attente étaient bien gérés, tout comme ils le sont bien si le SWF en question est exécuté individuellement.

    J'ai essayé d'améliorer le système en permettant de changer ce temps d'attente depuis la classe Planche, aussi j'ai changé mon système d'appel du SWF, de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.clip = MovieClip(this.caseAnim.content);
    this.clip.play();
    en
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    this.clip = Case(this.caseAnim.content);
    this.clip.play();
    La classe Case étant bien ajoutée aux imports du paquetage.

    Ce second code ne me renvoie aucun message d'erreur, que ce soit à la compilation ou à l'exécution, mais les temps d'attente sont tout simplement ignorés.

    Des idées sur la cause du problème ?

    Merci de votre aide.

  2. #2
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    ca dépend du contenu de : this.caseAnim.content
    soit un new ou un as

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut
    J'ai testé les deux, aucun ne marche.
    En fait this.caseAnim est un Loader, donc son contenu est un MovieClip de classe Case.

    En faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.clip = new Case(this.caseAnim.content);
    j'ai l'erreur
    1137: Nombre d'arguments incorrect. Nombre maximum attendu : 0.
    et avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.clip = this.caseAnim.content as Case;
    les fonctions de Case ne sont pas exécutées.

  4. #4
    Membre Expert Avatar de Lorenzo77
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    1 472
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mai 2006
    Messages : 1 472
    Par défaut
    ahhh ... dans ce cas crée ton clip a part et fait un addChild() du content

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    265
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 265
    Par défaut
    Comment ça le créer à part ?
    Le clip est déjà créé, après je ne fais que charger le SWF et le jouer, mais j'aimerais être capable d'interagir avec lui directement.

  6. #6
    Membre chevronné Avatar de IP-Fix
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    421
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2006
    Messages : 421
    Par défaut
    utilise les bibliotheque partager.

    D'autre part tu peux utiliser les events , par exemple ton stage :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dispatchEvent(new Event(Event.COMPLETE));
    enverra un event de type Event.COMPLETE au clip qui l'a chargé.

    Pour utiliser simplement une class dans une autre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    package test {
             public Class A {
                     function A(){
     
                     }
             }
    }
     
    package {
             import a.A; //On import le package , si c'est le package par defaut pas besoin.
             public Class B {
                    var objA:A; 
                    function B(){
                          objA = new A(); 
                    }
             }
    }

Discussions similaires

  1. Réponses: 3
    Dernier message: 16/04/2011, 10h32
  2. utilisation d'une variable d'une class dans une autre class
    Par the watcher dans le forum Langage
    Réponses: 7
    Dernier message: 31/08/2010, 14h01
  3. Eval d'une propriété d'une classe dans une classe
    Par bizet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/10/2008, 09h43
  4. [POO] dans une classe, appeler une fonction dans une méthode
    Par arnaudperfect dans le forum Langage
    Réponses: 3
    Dernier message: 26/08/2007, 23h04
  5. utiliser les attribut d'une classe dans une autre classe
    Par kaissaoui dans le forum Langage
    Réponses: 11
    Dernier message: 18/07/2007, 15h13

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