2008-11-12 9 views
2

En essayant d'apprendre à créer des objets en ActionScript, je n'ai pas réussi. Une chose que j'ai remarquée, c'est qu'il semble y avoir un milliard de façons différentes de le faire. Même si aucun d'entre eux n'a travaillé pour moi. Cela me déroute vraiment, et je ne sais pas quelle approche essayer de déboguer.ActionScript Object (Class?) Syntaxe

L'approche qui semble venir le plus souvent est:

function myClass() { 
    this.val = 1; 
} 

var test = new myClass(); 
trace(test.val); 

Mais ce me donne des erreurs du compilateur, peu importe la simplicité que je fais, et il fait aucun sens pour moi qu'une fonction pourrait être un objet. Si la fonction est un objet, où "this" pointe-t-il lorsqu'il s'agit d'une fonction dans une fonction (qui est interprétée comme un objet).

Une autre façon qui semble trouver un peu moins souvent:

class myClass { 
    function myClass() { 
     this.val = 1; 
    } 
} 

var test = ....

Cela me donne compilateur erreurs aussi bien, et semble plus formel. Mais je peux trouver très peu de documentation comparitivley. La plupart des guides sont soit très simples, soit supposent que vous parlez des objets intégrés.

Une troisième méthode a été de créer une

 new Object();
dans une fonction, d'ajouter toutes les choses que vous vouliez et de la renvoyer. Cela semble logique. Mais j'ai lu toutes sortes de choses qui mentionnent des prototypes, et il semble qu'un objet créé de cette façon ne conviendrait pas à un prototype. Mais vraiment je suis juste très confus.

Je suis également tombé sur quelque chose qui disait que la syntaxe de l'objet était différente entre AS2 et AS3, mais rien de plus.

Comment suis-je supposé créer des objets? Quelles sont les meilleures pratiques, et pour l'amour de Dieu quelqu'un sait-il où je peux trouver un tutoriel en profondeur? (mon google-fu est évidemment faible)

Répondre

5

La syntaxe de classe entre AS2 et AS3 est en effet différente. Pour AS3 la syntaxe ressemble à quelque chose comme ce qui suit:

package somePackage { 

    public class SomeClass { 
     public function SomeClass() { 

     } 
    } 
} 

En guise d'explication, un paquet est une enveloppe qui peut contenir plusieurs classes, donc vous devez déclarer ce paquet contient la définition de chaque classe.

Une classe requiert une fonction de constructeur. Dans la plupart des langues, le nom de la fonction constructeur est le même que le nom de la classe. C'est le cas dans ActionScript.

Pour appeler une instance de votre classe ressemblerait à quelque chose comme ceci:

package somePackage { 

    public class OtherClass { 
     public function OtherClass() { 
      var something = new SomeClass(); 
     } 
    } 
} 

J'ai ma référence AS3 assis devant moi, donc je me sens à l'aise avec l'extrait de code ci-dessus, mais malheureusement mon référence AS2 est au travail, mais le code devrait ressembler à quelque chose comme ce qui suit:

class ThirdClass { 
    public function ThirdClass() { 

    } 
} 

Et puis instancier une variable devrait ressembler à ceci:

var third = new ThirdClass(); 

Veuillez noter que les exemples fournis n'utilisent pas un typage fort que je recommanderais d'utiliser autant que possible dans vos efforts ActionScript.

Bien que je recommande fortement que vous choisissez une copie de Essential ActionScript 2.0 et/ou Essential ActionScript 3.0, j'ai trouvé les liens suivants pour les tutoriels commençant:

Beginning Flash and ActionScript Tutorials

More Beginner Tutorials

+0

J'ai essayé, mais pour quelle que soit la raison, je ne peux pas l'utiliser, j'ai essayé de le mettre dans le même fichier, et de le mettre dans un fichier différent avec une variété de déclarations d'importation. Comment puis-je avoir accès à ces cours? – Alex

+0

Travaillez-vous en AS2 ou AS3? –

+0

AS3, mais j'ai finalement réussi à obtenir l'accès, je ne sais pas comment, je ne vois rien de différent, mais il semble fonctionner. Merci – Alex