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" ???
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.
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.
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.
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.
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.
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.
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.