begin process at 2010 09 06 05:21:50
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

ActionScripts

 > [AS3 / CLASSE - STC PR] INTERFACEMANAGER : GÉREZ LE POSITIONNEMENT DES ELEMENTS DE VOS INTERFACES REDIMENTIONNABLES

[AS3 / CLASSE - STC PR] INTERFACEMANAGER : GÉREZ LE POSITIONNEMENT DES ELEMENTS DE VOS INTERFACES REDIMENTIONNABLES


 Information sur la source

Note :
9 / 10 - par 3 personnes
9,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :ActionScripts Classé sous :redimentionner, scale, interfaceManager, STC PR, AS3 Niveau :Initié Date de création :21/11/2007 Date de mise à jour :21/11/2007 13:10:10 Vu / téléchargé :5 204 / 429

Auteur : fanfouer

Ecrire un message privé
Site perso
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (9)
Ajouter un commentaire et/ou une note


 Description

Il  y a quelques temps, le problème s'est posé pour moi de réaliser une application dont l'interface utilisateur pouvait s'adapter à toutes tailles d'écran sans problèmes d'agrandissement ou de marges désagréables sur le côté.
La fonctionnalité de flash player sur ce point n'étant pas satisfaisante, je me suis donc tourné vers le développement d'un procédé pour replacer et redimentionner des éléments selectionnés au préalable à la suite d'une modification de la taille de la fenetre du player.

C'est ce que je vous propose ici : un objet est à créer pour ensuite pouvoir y déclarer des displayObjects appartenant directement à la scene ou à un mc lambda. Le redimentionnement automatique pour s'adapater à l'écran n'est pas automatique : en effet, il faut appliquer un écouteur d'evenement à l'objet Stage éxécutant une methode de interfaceManager (elle-meme replaçant tous les éléments à la bonne place). Plus de précisions dans la source ci-dessous.

Bien que j'ai essayé de faire de mon mieux pour commenter et documenter un maximum ma classe, je reste biensur disponible pour toute question ou même des idées pour améliorer mon travail. Merci à vous.

Source

  • //Import de la classe (qui est dans le zip).
  • import STCDevlib.UI.interfaceManager;
  • //Creation de l'objet et declaration de deux elements de l'UI
  • var uimngr = new interfaceManager (this.Stage, true); //On applique le gestionnaire directement à la scene qui est un objets dont les dimentions sont les mêmes que celles de la fenetre (d'ou le true en deuxieme paramètre).
  • uimngr.registerElement (this.mc_1, {align:"left", vAlign:"top"}); // l'objet sera aligné en haut à gauche
  • uimngr.registreElement (this.mc_2, {align:"right", vALign:"bottom", rightPoint:true}; // L'objet sera aligné en bas à droite en tenant compte de ses dimentions.
  • //Ajout de l'ecouteur et situation initiale
  • this.stage.addEventListener(Event.RESIZE, uimngr.resizeInterface);
  • uimngr.resizeInterface(); // Execution de la fonction pour mettre en place l'interface.
//Import de la classe (qui est dans le zip).
import STCDevlib.UI.interfaceManager;

//Creation de l'objet et declaration de deux elements de l'UI
var uimngr = new interfaceManager (this.Stage, true); //On applique le gestionnaire directement à la scene qui est un objets dont les dimentions sont les mêmes que celles de la fenetre (d'ou le true en deuxieme paramètre).

uimngr.registerElement (this.mc_1, {align:"left", vAlign:"top"}); // l'objet sera aligné en haut à gauche
uimngr.registreElement (this.mc_2, {align:"right", vALign:"bottom", rightPoint:true}; // L'objet sera aligné en bas à droite en tenant compte de ses dimentions.

//Ajout de l'ecouteur et situation initiale
this.stage.addEventListener(Event.RESIZE, uimngr.resizeInterface);
uimngr.resizeInterface(); // Execution de la fonction pour mettre en place l'interface.

 Conclusion

Rien à déclarer.

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Historique

21 novembre 2007 13:10:10 :
Post initial - V1.0

 Sources du même auteur

Source avec Zip Source avec une capture CONSOLE RÉSEAU RTE - UTILISATION DE COLOR, CARTE DE RÉSEAU -...

 Sources de la même categorie

Source avec Zip Source avec une capture COMPOSANT SWC CALENDAR DATE PICKER POUR FLASH CS5 AS3 par nicoflashkod
Source avec Zip EDITEUR DE NIVEAU par Mansuz
Source avec Zip Source avec une capture BLACK MP3 PLAYER par BBFUNK01
Source avec Zip GÉNÉRATEUR DE LUMIÈRE par sylbuggy
Source avec Zip Source avec une capture TOURNER UN OBJEC VERS LA SOURIS... par top30

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture AS3-ASCIITEXTENCRYPTOR - CRYPTAGE / DÉCRYPTAGE DE TEXTE ASCI... par LapinouFouSAT13
Source avec Zip SUPER TWEEN PACKAGE par Acidchlorhydrik
Source avec Zip NAVIGATION DANS UN FICHIER XML par inaden
Source avec Zip DIAPORAMA AS3 par webcrea92
Source avec Zip EXPOGEN AS3 VESION 0.8 par remy2501

Commentaires et avis

Commentaire de top30 le 21/11/2007 18:42:44 7/10

Pour reférencer les clips :
Utilises une "clef" et un "Dictionnary"  plutot que le nom d'un clip.

Car plusieurs clips pourrait avoir le même nom.
Et donc écraser l'ancienne ref :


// private var elementsArray:Array = new Array();
private elementsList :Dictionnary= new Dictionnary() ;


public function registerElement(element_mc:DisplayObject, opts:Object) {
   .../...
   var oData= new Object();
   oData.opts = opts;
   oData.num = this.nbElements++ ;
   oData.ref = element_mc ;
   this.elementsList[element_mc] = oData ;
   // Ainsi chaque clip a son objet de données référence...
}



De plus plutot que de creer une class "Manager" pourquoi ne pas avoir créer des écouteurs spéecialisés ?
Genre :

   var oResizer :DisplayObjectResize= new DisplayObjResizer( monClip_mc, 'LT' ) ;
   oResizer.startListenStage() ;

Sachant que la méthode "startListenStage" s'occuperait de replacer le clip, et s'auto ajouterait à la liste des écouteurs. De plus la fonction cohabiterait avec son inverse : "stopListenStage()".

Ne sont que quelques idées qui me viennent en lisant ta classe.

Un peu "lourd", mais bonne intention.
Je mets 7/10 pour avoir eu le courage de t'attaquer aux classes AS3.
J'aurais mis 8 si il y avait eu un Fla de démo.

Commentaire de fanfouer le 21/11/2007 22:12:13

Merci de ton commentaire (et pour le 7). Effectivement je ne connaissais pas Dictionary mais c'est plutot pratique. Je l'appliquerai donc dans une future mise à jour (qui risque de ne pas tarder si beaucoup d'idées comme celle-ci tombent).

Ensuite pour le modèle que j'ai choisi, c'est vrai que ca peut paraitre un peu lourd (et ca l'est), mais je voulais quelque chose de central (pour pouvoir produire des actions de groupe, qui concernent tous les elements enregistrés par exemple). Pour aller plus loin avec ce que tu évoques, j'aurais pu créer un objet étendant MovieClip écoutant sur la scène pour se repositionner tout seul. Or avec ca, il lui serait impossible d'interragir avec les autres elements de l'UI et ca impliquerai de ne plus utiliser les classes standarts de flash, ce que j'évite à tout prix.

Enfin c'est vrai, le processus est lourd et je suis paratgé entre faire ce que tu dit (pour alléger) et laisser comme ca (pour privilégier les fonctionnalités d'interaction possibles).

A suivre.

Commentaire de funlife le 23/11/2007 18:59:12 10/10

depuis le temps que je cherchais a faire ca , tu viens de me faire gagner enormement de temps, merci, 10 ;)

Commentaire de nadouch le 12/04/2008 17:54:34 10/10

J'ai exactement le même pbm, j'ai cherché beaucoup sur le net jusqu'à arriver à votre source mais malheureusement j'ai pas compris où je place ce code là parceque j'ai pas utiliser les classes avant.
Est ce que vous pouvez me dire alors, où je met ce code dans l'animation pour quelle s'adapte à toutes dimensions d'écran.

Merci en avance.

Commentaire de fanfouer le 12/04/2008 18:18:50

Bonsoir,

Il suffit de placer le code a la racine pour que tout fonctionne.

Si vous rencontrez des erreurs, merci de venir en reparler ici.

Bonne fin d'après midi.

Commentaire de nadouch le 12/04/2008 22:54:52

Merci pour la répense;
j'ai plus qu'une séquence dans mon animation et j'ai mis ton code
dans la séquence principale et le dossier qui contient la classe dans le même repertoire que celui du fichier .fla et voici les erreurs que j'ai:

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 13 : Erreur de syntaxe.
     package STCDevlib.UI {

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 27 : Attribut utilisé en dehors de la classe.
     public class interfaceManager{

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 44 : Impossible de charger la classe ou l'interface 'DisplayObject'.
     public function interfaceManager(stageObj:DisplayObject, isGlobal:Boolean) {

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 73 : Impossible de charger la classe ou l'interface 'DisplayObject'.
     public function registerElement(element_mc:DisplayObject, opts:Object) {

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 110 : Impossible de charger la classe ou l'interface 'DisplayObject'.
     public function unregisterElement(element_mc:DisplayObject) {

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 124 : Impossible de charger la classe ou l'interface 'Event'.
     public function resizeInterface(e:Event = undefined) {

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 128 : Instruction interdite dans une définition de classe.
     if (this.isGlobal && stageObj.stageWidth != undefined && stageObj.stageHeight != undefined){

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 134 : Instruction interdite dans une définition de classe.
     for (var i in this.elementsArray) {

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 215 : Attribut utilisé en dehors de la classe.
     public function toogleInterfaceElement(element_mc:DisplayObject, visibleState:Boolean) {

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 225 : Attribut utilisé en dehors de la classe.
     public function unregister():void{

**Erreur** C:\Bureau\memoire\STCDevlib\UI\interfaceManager.as: Ligne 235 : Les scripts de classe ActionScript 2.0 peuvent définir uniquement des éléments de classe ou d'interface.
     }

Total des erreurs ActionScript : 11 Erreurs signalées : 11

Bonne soirée

Commentaire de nadouch le 12/04/2008 22:57:18

Je crois que c un problème d'action script ou flash, moi je travaille avec
flash8.
a+

Commentaire de fanfouer le 13/04/2008 01:02:14

Re-bonsoir,

Effectivement, c'est un problème de version. Cette classe est rédigée en AS3, il me semble que flash 8 est encore en AS2. Mettez à jour votre version de flash pour supprimer toutes erreurs.

Bon courage.

Commentaire de jeep501 le 13/04/2009 14:12:59

Bonjour,

J'ai l'erreur suivante ???

1084: Erreur de syntaxe : rightparen est attendu devant semicolon.

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

actionscript - problème variables dans une fonctions [ par neymo ] Bonjour,  j'ai le problème suivant :  J'ai un petits script que j'ai récupéré sur le net et adapté à mes besoi commande scale [ par stefbuet ] salut . quelqu'un pourrai me dire comment je dsoit utiliser pour que avec une commande scale je change le sens d'un clip ??exemple :j'ai desiner un so Flash 9 / AS3 + Socket MySQL question [ par _benjy ] Salut @ tous...Bon j'imgine que certain d'entre vous sont au courant de la publication de Flash 9 Alpha. Perso je l'ai recup av hier, et autant le dir Découverte de l'AS3...pas gagné [ par Neferieb ] Bonjour,Je suis un peu dérouté en ce moment car je découvre l'AS3 et je reste perplexe quant au manque d'info pour réaliser des applications web plus redimentionner un load movie, c possible ? [ par sheuwn ] Bonjour a tous,j'ai une animation swf en 800*535j'ai creer une page flash en 900 * 500j'ai fais un load movie mais je voudrais que l'animatione en 800 prob: Redimentionner image dans un clip [ par maestro128 ] Bonjour a tousvoila je travaille avec des photo jpg, et je suis amené a les afficher dans des clips, vue que les images contiennent beaucoup de texte endinitclip invisible ? [ par BigPanda ] Bonjour.J'ai récupéré un FLA sur Internet que j'aimerais replacer par la suite dans une animation en Flash 8.Seulement quand je lis cette animation so creation sommaire pour videos AS3 [ par mackaB ] Bonjour, Je vous écris car je fais un projet Flash (9.0) AS 3 et j ai un petit probleme avec les listes.En effet avec AS3, dans Component inspector, l list et AS3 [ par mackaB ] Bonjour ,alors mon problème est que je n´arrive pas á relier les élèments d´une liste vers d autres élèments ( par exemple pour se servir de la liste Probleme Scale, getRGB et occurance (ne marche qu'une fois ? ? ) [ par _n3o_ ] Salut a tous, voila je suis pas super doué enflash mais je me donn


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Septembre 2010
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
27282930   

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,624 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales