[as3 / classe - stc pr] interfacemanager : gérez le positionnement des elements de vos interfaces redimentionnables

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 / Exemple :


//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.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.