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 :

recuperer une Classe objet aléatoirement


Sujet :

ActionScript 3

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 256
    Par défaut recuperer une Classe objet aléatoirement
    Bonjour :]

    J'ai un certain nombre de classes d'objet Objet1, Objet2, Objet3 et je voudrais créer un objet appartenant à l'une de ces classe mais de façon aléatoire.

    Je ne trouve pas la syntaxe à utiliser...

    Merci pour l'aide !

  2. #2
    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
    Est ce que tes 3 objets implémente la meme interface ?

    Est ce que tes 3 objets hérite de la meme base

    Qu'elle est la différence entre les 3 ?

    Avec ça on va pouvoir te répondre précisément car c'est un problème trop générique que t'a demandé avec trop de réponses différentes possible

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    256
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 256
    Par défaut
    ce sont trois classes qui héritent de MovieClip. Il s'agit de trois objets de forme graphique différentes que j'ai créer avec l'éditeur sur le document. J'ai ensuite exporté ces les classes créées vers l'actionscript pour pouvoir les exploiter.


    :]

  4. #4
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    function randomObject():MovieClip{
    var n:Number = Math.random();
    if(n<0.33)
    return new Object1();
    else
    return (n<0.66)?new Object2():new Object3();
    }
    Voila !

  5. #5
    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
    salut les gars,

    sinon stoker les occurrences dans un tableau (tb) et faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trace(tb[Math.round(Math.random() * (tb.length - 1))]);
    ca fonctionne sans tenir compte du nombre d'éléments dans le tableau car si tu en a une 10aine les conditions vont devenir très lourde a mettre en place

  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
    Le probleme de cette methode c'est que si t'a besoin de plusieurs occurence d'une classe sa marche pas.

    Autre probleme si tu utilise qu'une occurence dans un tableau de 10 par exemple tu as instancié 10 objet pour s'en servir que d'un ^^

    La VRAI solution c'est une class Factory , je vous laisse lire les tuto sur ce design pattern qui m'a sauvé plus d'une fois

  7. #7
    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
    bien sur que ça marche très bien avec plusieurs occurrences de la même classe

    pas la peine de ce prendre la tête, ya toujours une manière simple pour faire quelque chose, la même que précédemment :

    dans ce cas la tu as juste a stocker dans le tableau le type !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var tb:Array = [Button, Loader];
    et aprés faire un new :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    trace(new tb[Math.round(Math.random() * (tb.length - 1))]);
    de cette manière tu ne vas instancier la classe que lorsque tu en as besoin ...

  8. #8
    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
    Oo je viens de tester ça marche nickel !

    Je connaissais pas du tout cette technique de stocker un type ( ce qui me parait vachement louche au niveau théorique xD ) mais c'est rudement efficace !

    Lolo power !

Discussions similaires

  1. aide pour créer une classe objet
    Par marco62118 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 18/03/2014, 00h25
  2. [Débutant] [POO] Définition de Méthodes au sein d'une classe Objet
    Par ghada97 dans le forum MATLAB
    Réponses: 7
    Dernier message: 29/11/2013, 18h31
  3. recuperer une class sur mon serveur
    Par hterrolle dans le forum Général Java
    Réponses: 6
    Dernier message: 05/12/2007, 22h14
  4. Recuperer un objet panel ds une classe derivé d'une JFrame
    Par benthebest dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 26/12/2005, 01h57
  5. Réponses: 6
    Dernier message: 06/12/2004, 22h18

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