RemarqueCet doit être fait dans ActionScript 2 en raison de mon lecteur public restreint au flash player 8.flash AS2 bouton obtenir une action dynamique en classe MovieClip
Je suis en train de construire une classe simple qui étend la base Classe Movieclip. J'applique ensuite cette classe à un MovieClip de la bibliothèque en utilisant le panneau des propriétés et en lui donnant le nom de la classe. Cela fonctionne très bien, et je suis capable d'utiliser ma classe et mes méthodes etc. sur cet objet après avoir attaché le MovieClip à la scène en utilisant attachMovie. Ce que je n'arrive pas à faire, c'est le bouton que j'ai dans le MovieClip. A l'origine j'avais un bouton mis en place dans la bibliothèque movieclip, mais je ne peux pas sembler cibler cela dans ma classe. Ce que je voudrais faire est simplement de mettre en place un simple type de chose getURL dans le bouton, mais cela ne semble pas fonctionner.
J'ai essayé d'assigner le gestionnaire onMouseDown dans la classe plutôt qu'un bouton, et cela a fonctionné, mais c'est arrivé partout où j'ai cliqué sur la scène plutôt que juste au-dessus de la zone graphique. Cela a eu pour effet de déclencher tous les autres manipulateurs sur toutes les autres instances de la classe que j'avais sur la scène, de sorte qu'ils se déclenchent tous en même temps. Cependant, l'utilisation de onRollOver et onRollOut a fonctionné comme prévu.
J'ai également essayé de mettre en place un autre bouton dans la bibliothèque et d'utiliser this.attachMovie avec ma classe pour l'attacher, mais je n'arrive toujours pas à obtenir un handle pour cela.
J'ai créé un script de test très simple pour essayer d'illustrer ce que je suis en train de faire: -
class Test extends MovieClip {
public function Test() {
// constructor code
this.attachMovie("theButton" , "myButton" , _root.getNextHighestDepth())
this.myButton.onMouseDown = clickMe;
this._x = Math.random() * 800;
this._y = Math.random() * 400;
}
public function clickMe() {
trace("I have been clicked"+this._name);
}
}
Ainsi, la question est, comment puis-je joindre (ou ont présent dans le MovieClip) un bouton, que je peux fournir un gestionnaire de type onMouseDown ou onMouseUp pour ce bouton qui ne fonctionnera que si je clique sur le bouton actuel? Qu'est-ce que je fais mal ici ... J'ai essayé plein d'idées différentes, mais rien ne semble fonctionner. Rappelez-vous c'est AS2 pas AS3. Merci.
il a été un certain temps pour AS2, mais avez-vous essayé 'this.myButton.onRelease = Clickme;'? et vous n'avez aucun clic sur les instances de 'Test', n'est-ce pas? (note de côté: utilisez this.getNextHighestDepth(), pas _root, obtenez la profondeur suivante de ce que vous attachez à) – zamnuts
la ligne this.myButton.onMouseDown me donne une erreur disant qu'il n'y a pas de propriété avec le nom 'myButton'.Je comprends pourquoi c'est ce que je dis, mais je n'arrive pas à comprendre comment fonctionne attachMovie dans une classe et comment j'obtiens une propriété que je peux cibler et utiliser. –
Merci Zamnuts ... il semblerait que l'utilisation de this.onRelease fasse la différence si j'utilise un bouton qui existe dans mon MovieClip (avec la classe on) dans la bibliothèque et que j'utilise plutôt onRelease au niveau de la classe que d'essayer de l'attacher au bouton. Je trouve cela un peu étrange mais au moins cela semble fonctionner. –