Classe info bulle

5/5 (33 avis)

Vue 19 990 fois - Téléchargée 3 160 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
BananaTree Messages postés 337 Date d'inscription vendredi 15 octobre 2004 Statut Membre Dernière intervention 2 novembre 2010
25 janv. 2007 à 12:54
jai rien compris,
mais "loadBubleHelp_api [type Function]" m'indique que tu boucle sur _root (ou sur _global*) à un moment ou à un autre.

* c'est trop ancien pour que je me souvienne de l'implémentation.
Register5 Messages postés 2 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 25 janvier 2007
25 janv. 2007 à 11:23
Je precise que je travaille avec des tableaux associatif parcouru par for(var ... in ...)

En fait je pense que c'est en s'attaquant directement au prototype que cela pose un problème.
Register5 Messages postés 2 Date d'inscription mercredi 9 novembre 2005 Statut Membre Dernière intervention 25 janvier 2007
25 janv. 2007 à 10:59
Quand j'ajoute le composant à ma scene et que j'affiche tous les éléments d'un Array
j'ai cela qui apparait comme premier élément:

loadBubleHelp_api [type Function]

Ce qui n'est pas trés cool vu que tout les tableaux se retrouve avec un élément indésirable. Une idée d'où cela vient?

Merci
missulie Messages postés 4 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 24 avril 2009
6 janv. 2007 à 11:46
Désolé pour cette question stupide (je débute) ! Je viens de trouver !!! Il s'agit de ne pas oublier d'ouvrir l'inspecteur de composants !
missulie Messages postés 4 Date d'inscription samedi 6 janvier 2007 Statut Membre Dernière intervention 24 avril 2009
6 janv. 2007 à 11:32
Bonjour,

Je me suis servi des composants présents dans le fla. Mais je n'arrive pas à modifier le texte qui s'affiche dans l'infobulle.
J'ai remplacé "sample text" par "mon texte" dans les lignes suivantes.
on (rollOver) {
loadBubleHelp_api(0, 500, "Sample text");
}
on (rollOut, press) {
unloadBubleHelp_api();
}
Mais ça ne fonctionne pas : c'est "sample text" qui continue de s'afficher. J'aimerai savoir où saisir le texte que souhaite voir apparaître.

Merci.

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.