Comment simuler "this" au sein d'une fonction statique !!!

Soyez le premier à donner votre avis sur cette source.

Vue 6 971 fois - Téléchargée 525 fois

Description

Ca va faire du bruit !!!
J ai enfin réussi à utiliser un "this" au sein d'une fonction static. Ca résoudra surement pas mal de "contraintes" à un bon nombre de programmeur.
Ca permet en autre de pouvoir créer des Blibliothèques de fonctions et de pouvoir enfin appliquer une de celle-ci à une instance. Tout en laissant la possibilité au "compilateur" de pouvoir reconnaitre la class de l'instance ( par encodage );

vous pourrez écrire désormais :

function maClasse ()
{
this.maFonction = maLibrairie.maFunctionStatic ;
}

Pour plus de claireté voir le "fla" ci-joint.
Je me demande même si c'est pas limite du "hacking" ???

Codes Sources

A voir également

Ajouter un commentaire Commentaires
Messages postés
337
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
2 novembre 2010

petit erratum et je m'arretes là :

for (var id in _root) {
if (eval([id]).toString() == "top30") {
trace([id]+" est un occurence de myObject");
}
}

en effet, le "this" est inutile puisqu'initialisé à la construction de la classe par la déclaration de toString et le passage de traceThisToString comme paramettre.
Messages postés
337
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
2 novembre 2010

Hé le plus beau, c'est que ça marche.
voici comment à partir de l'exemple précédent on peu récupérer les objets présent dans l'anim avec un boucle "for in"

for (var id in _root) {
if (eval([id]).toString(this) == "window") {
trace([id]);
}
}

(notez que for in n'accepte que String comme parametre)

je répette (pour ceux qui y mettraient de la mauvaise volontée) que ce qui m'interresse, c'est de simuler :

if(typeof ([id] == "movieclip")

en passant le nom de la classe comme paramettre de type.

@++ et bon code.
Messages postés
337
Date d'inscription
vendredi 15 octobre 2004
Statut
Membre
Dernière intervention
2 novembre 2010

slt top30

très interressant comme travail.
plongé dans mes codes de débogageje cherchais un moyen de simuler le fameux typeof().

en etudian ton code, au début j'ai pas trop compris, puis j'ai réalisé que tu faisais une surcharge de la fonction globale toString.

de là m'est venue cette idée :
trace ( theObject.toString(this) ) ;
qui peu se traduire par retourne la valeur de theObject sous forme de chaine (et on revient au typeof() qui m'interresse).

soit pour ma classe :
class myObject
{
private var name : String = "top30";
public var toString : Function = traceThisToString;
public function myObject ()
{
}
private function traceThisToString ()
: String
{
var o:Object = eval ("this");
return o.name ;
}
}

et pour le fla :
theObject = new myObject () ;
trace ( theObject.toString(this) ) ;

de fait, ton code m'a rendu ce grand service : simuler typeof() attribuant un nom perso sous forme de chaine à une classe.

cette approche est très interressante.

bonne continuation dans le hack top30, ça poura donner de nouvelles idées.
Messages postés
1
Date d'inscription
mercredi 29 juin 2005
Statut
Membre
Dernière intervention
19 juillet 2005

hum ca a l'air intéressant tout plein ca... je le met en pratique et je reviens
Messages postés
1158
Date d'inscription
vendredi 21 février 2003
Statut
Membre
Dernière intervention
6 août 2010

Et le hacking c'est pas une sorte de bricolage pour atteindre des buts non désirés par les créateurs d'un language ? :\
Afficher les 6 commentaires

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.