Classe info bulle

Soyez le premier à donner votre avis sur cette source.

Vue 19 548 fois - Téléchargée 3 108 fois

Description

Version 1.6.1

Source / Exemple :


Object.prototype.loadBubleHelp_api = function(level, delay, bubleHelpText) {
	function BubleHelp_api(level, delay, bubleHelpText) {
		this.level = level;
		this.delay = delay;
		this.bubleHelpText = bubleHelpText;
		Object.prototype.unloadBubleHelp_api = function() {
                                clearInterval(BubleHelp_api.callback);
			_root.bubleHelp_txt.removeTextField();
		};
	}
	BubleHelp_api.getActualTime = getTimer();
	BubleHelp_api.callback = setInterval(function () {
		if (getTimer()>(BubleHelp_api.getActualTime+delay)) {
			BubleHelp_api.setBubleHelpTool();
			clearInterval(BubleHelp_api.callback);
		}
	}, delay-1);
	BubleHelp_api.getBubleHelpTool = function() {
		BubleHelp_api.callback;
	};
	BubleHelp_api.setBubleHelpTool = function() {
		BubleHelp_api.createBubleHelpString();
	};
	BubleHelp_api.createBubleHelpString = function() {
		_root.createTextField("bubleHelp_txt", level, _root._xmouse+20, _root._ymouse+20, 0, 0);
		_root.bubleHelp_txt.selectable = false;
		_root.bubleHelp_txt.text = bubleHelpText;
		bubleHelp_fmt = new TextFormat();
		bubleHelp_fmt .font = "Arial";
		bubleHelp_fmt .size = 10;
		_root.bubleHelp_txt.setTextFormat(bubleHelp_fmt );
		_root.bubleHelp_txt.autoSize = "left";
		_root.bubleHelp_txt.border = true;
		_root.bubleHelp_txt.background = true;
		_root.bubleHelp_txt.backgroundColor = 0xFFFFCC;
	};
	BubleHelp_api.getBubleHelpTool();
	BubleHelpTool = new BubleHelp_api(level, delay, bubleHelpText);
};

Conclusion :


donc voilà la vesion finale.

en fait, je me suis dit que l'idéal était de ne laisser qu'un minimum d'accès aux classes.
aussi, je pense que c'est plutot une bonne idée de se servir des composants pour encapsuler les classes et de les glisser sur la scene (comme des clips d'ammorçage).

le faite de définir les fonctions d'appel sur la classe la plus élevée (objet) me parait être extrement pratique.

vous aurez remarqué l'extension api.

en fait, pour les codeurs, je préconise de glisser la classe sur la scène et d'utiliser la fonction d'appel
on (rollOver) {
loadBubleHelp_api(0, 500, "Sample text");
}
on (rollOut, press) {
unloadBubleHelp_api();
}
directement sur les boutons.

pour les autres, il suffit de glisser SetBubleHelp_api sur les clips ou les boutons, puis de parametrer. (d'ou l'extension récurente _api)

@+ et bon code à tous

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

cs_Mafassure
Messages postés
1064
Date d'inscription
jeudi 24 juillet 2003
Statut
Modérateur
Dernière intervention
14 février 2009
-
ouaw, j'adore
je regrette l'absence de commentaires dans le code ...

Pourquoi un delay ?
cs_Mafassure
Messages postés
1064
Date d'inscription
jeudi 24 juillet 2003
Statut
Modérateur
Dernière intervention
14 février 2009
-
Fait pas gaffe banana....
Plus c'est paramétrable mieux c'est après tout !
BananaTree
Messages postés
337
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
2 novembre 2010
-
hello maf,

en fait concernant delay et level, c'est que je préconise plutôt de parametrer la méthode loadBubleHelp_api ainsi :
loadBubleHelp_api (_global.maxLevel, _global.delay, "Sample text")

pour les coms, j'ai utilisé comme base les termes présents dans as (createBubleHelpMovieClip, etc...) donc je ne pense pas qu'un commentaire soit utilie, d'autant que ce n'est pas un tuto, mais une modeste source.

par contre là ou j'ai du te surprendre, c'est que tout est en ..... (haa !!! j'ai du mal à le dire)...................
...............
en englais !

désolé ! mais ça correspond à ce que j'avais en tete lorsque j'ai fait le code. (ce dernier etant un test pour un autre projet plus interressant).

si j'avais mis des coms, ceux-ci aussi auraient été en anglais, je vous ai donc épargné cela ;-)
SuperDevy
Messages postés
842
Date d'inscription
dimanche 24 novembre 2002
Statut
Membre
Dernière intervention
2 juillet 2007
-
Déjà, ça marche nickel. C'est un bon point.

Au niveau de la performence, l'utilisation de setInterval aurrait été une bonne idée pour le délai d'affichage. Peut-être voir ma source à ce sujet ?
http://www.flashkod.com/code.aspx?ID=30222

Pour adapter la dimention du TextField à son contenu, il faut que tu supprimes la propriété wordWrap.
Peut-être voir ma source à ce sujet ?
http://www.flashkod.com/code.aspx?ID=13811

Aussi, tu utilises des noms trop long. C 'est pas très lisible.

Je conprend pas pourquoi tu as créé un MovieClip ...
SuperDevy
Messages postés
842
Date d'inscription
dimanche 24 novembre 2002
Statut
Membre
Dernière intervention
2 juillet 2007
-
Juste en passant, c'est la propriété wordWrap qui fait foirer le autoSize.

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.