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 :

généraliser une classe document


Sujet :

ActionScript 3

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Par défaut généraliser une classe document
    Bonjour à tous, voilà j'ai créé une petite classe qui me permet de simplifier le centrage de mes clips sur la scène, jusqu'à ici tout fonctionne correctement, le problème c'est que cette classe, je voudrais pouvoir l'utiliser sans quelle soit liée à mon document, c'est-à-dire que je souhaiterais l'utiliser en "import" et non en étant obligé de l'embarquer dans chacun de mes projets. Bon je vous le dis tout de suite, l'utilisation du "enterFrame" n'est peut-être pas approprié et mon code consomme surement plus de ressource que si je faisais tout simplement un (stage.stageWidth - monClip.width)/2 , mais bon si quelqu'un peut m'aider à y voir plus clair, ceci me permettrais de mieux comprendre mes erreurs. Bref, voici ce qui en découle:

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
     
    package org.artk {
     
    	import flash.display.MovieClip;
    	import flash.display.Stage;
    	import flash.events.Event;
    	import flash.display.Loader;
     
    	public class Centre extends MovieClip
    	{
     
    		private var contener:MovieClip = new MovieClip();
    		private var largC:int;
    		private var hautC:int;
     
    		public function Centre () 
    		{
    			addChild (contener);
    			contener.addEventListener("enterFrame",centrer);
     
    			function centrer (pEvt:Event)
    			{
     
    				contener.x = (stage.stageWidth - largC) /2;
    				contener.y = (stage.stageHeight - hautC) /2;
     
    				if (largC > 0 || hautC > 0)
    				{
    					contener.removeEventListener("enterFrame",centrer);
    					trace ("enterFrame supprimer !!!");
    					trace ( "largeurContener" + largC );
    					trace ( "hauteurContener" + hautC );
    				}
    				else
    				{ 
    					trace ("echec de la récupération de la taille du contener");
    					contener.removeEventListener("enterFrame",centrer);
    					trace ("enterFrame supprimé ");
    				}
    			}
    		}
    	}
    }
    Pour centrer mon clip dans mon fichier "FLA", je fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    var bt:Bt = new Bt();
    largC = bt.width
    hautC = bt.height
    contener.addChild ( bt );
    Je sais tout ça pour ça

    Sinon, tout fonctionne correctement quand je précise la définition de ma "classe de document", le clip est bien centré et les bonnes dimensions sont affichés en sortie.

    Maintenant, ce que je souhaiterais faire c'est de pouvoir l'ajouter dans mes chemins de classe interne à flash (préférence>>actionscript>>paramètre actionsScript3>>chemin de classe) et pouvoir la réutiliser en import, pour l'instant je n'arrive pas à créer une classe autonome. J'espère que vous comprenez ce que j'essaie de faire.

    Voili voilou, j'espère qu'une âme charitable pourra m'aider et si vous savez comment il est possible de créer une classe (et non une classe de document) permettant de centrer rapidement un clip sur la scène, je suis preneur

  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
    Pour ta question de base je sais pas, pour la methode j'utilise sur mes gros projet une class Utility avec une methode static centre

    Qui s'utilise de la sorte :

    Utility.centre( displayObject ,onStage:Boolean=false );

    et qui centre par default par rapport au clip parent (s'il existe ) et non le stage.

    Si tu veux qu'elle se recentre tout le temps tu pourrais mettre des event sur le resize du stage plutot qu'un enterFrame

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 9
    Par défaut
    Oui en effet, je n'avais pas pensé à ceci, je vais voir si je peux mettre en place ce que tu dis.

    Sinon pour externaliser ma classe, il n'y aurait pas une méthode, car j'aurais bien voulu comprendre pourquoi ceci ne fonctionne pas

Discussions similaires

  1. génération de documentation: attribut d'une classe
    Par forun dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 0
    Dernier message: 16/01/2012, 17h21
  2. Réponses: 5
    Dernier message: 18/04/2011, 15h15
  3. [Doxygen] Un if avant une classe empêche la documentation de celle-ci ?
    Par Neilos dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 21/01/2007, 15h31
  4. Réponses: 6
    Dernier message: 07/03/2006, 10h51
  5. Sortir un typedef d'une classe
    Par Theophil dans le forum C++Builder
    Réponses: 13
    Dernier message: 03/07/2002, 17h21

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