J'ai un projet ActionScript qui utilise des symboles visuels d'un SWC.Comment les classes du projet actionscript remplacent-elles les classes d'un fichier SWC Flash CS3?
J'ai un CheckoutButton
auquel la classe suivante est associée (compilé dans le fichier SWC dans Flash CS3).
public class CheckoutButton extends SimpleButton {
public function CheckoutButton() {
this.addEventListener(MouseEvent.CLICK, checkoutClicked);
}
// click on the button and the alpha will go to 50%
public function checkoutClicked(e:MouseEvent):void {
this.alpha = .5; // take user to checkout
}
public function dispose():void {
}
}
Important: Le fichier CheckoutButton.as
est dans le classpath du projet actionscript qui utilise le SWC.
-je utiliser la compilé SWC dans un projet actionscript et j'ai couru les scénarios suivants:
1) je supprime CheckoutButton.as
du classpath pour mon projet actionscript:
var x:CheckoutButton = new CheckoutButton();
addChild(x);
Je reçois une instance du symbole visuel de mon fichier Flash CS3. Quand je clique dessus, c'est l'alpha qui passe à 50%. C'est exactement comme je m'y attendais.
2) Je lance ce code avec CheckoutButton.as
dans le classpath pour mon projet actionscript:
var x:CheckoutButton = new CheckoutButton();
addChild(x);
Rien ne se passe pas du tout. C'est exactement ce que j'attends - parce que j'ai fondamentalement remplacé la définition de classe du SWC par un SimpleButton
qui n'a aucune fonctionnalité visuelle.
Maintenant, j'ai aussi une animation de scénario CheckoutAnimation
dans mon fichier Flash qui arrive juste à contenir une instance du symbole CheckoutButton
.
3) Je lance le projet actionscript après SUPPRIMER CheckoutButton.as
du classpath:
var x:CheckoutAnimation = new CheckoutAnimation();
addChild(x);
Le symbole dans l'animation reprend la définition de classe (initialement compilé dans le SWC) et quand je clique dessus la alpha du symbole va à 50%. C'est exactement comme prévu.
4) je lance le projet actionscript avec CheckoutButton.as
encore dans le classpath:
var x:CheckoutAnimation = new CheckoutAnimation();
addChild(x);
Le symbole de commande apparaît dans l'animation, mais en cliquant dessus ne fait rien !!
POURQUOI CELA EST-CE! JE NE COMPRENDS PAS! Je ne comprends pas pourquoi je n'obtiens pas le même résultat que dans (2) ci-dessus, et je ne comprends absolument pas pourquoi aucun code n'est en cours d'exécution. Quel est le conflit ici?
merci pour la pensée latérale - malheureusement ce n'est pas le coupable cette fois. J'essaie principalement de comprendre ce que le comportement est censé être - l'exemple était une simplification pour cette question –