Archives de catégorie : AS3

Cliquer sur un bouton sous un clip avec RollOver

Hé ! hé ! ça vous parle ?

Moi oui et c’est pour me rapeller de la petite combine que je viens de trouver que je faiscette note :

Par exemple j’ai un MovieClip sur lequel je gère des MouseEvent.ROLL_OVER e tje veux qu’un clic sur un bouton sous ce clip puisse faire une action :

J’écoute (mon code 😉 ) l’event CLIC sur le clip du dessus et si la souris est au dessus du bouton du dessous je fais telle ou telle action …

protected function clickOnMe(event:MouseEvent):void{
var mouseP:Point = new Point(mouseX,mouseY);
var overFbBtn:Boolean = bt_facebook.getBounds(this).containsPoint(mouseP);
if(!overFbBtn){
  trace("pas FB");
  var evtNoFB:PageEvent = new PageEvent(PageEvent.CARTE_CLICKED,name,true);
  dispatchEvent(evtNoFB);
}
else{
trace("fb");
var evtFB:PageEvent = new PageEvent(PageEvent.FACEBOOK_SHARE,name,true);
dispatchEvent(evtFB);
}
}

 

Instancier Dynamiquement une Classe de la bibliothèque Flash

Régulièrement je recherche sur le net des petits bouts de code, des recettes pour mes développements. Pourquoi ne pas les mettre carrément sur mon site. N’hésitez pas, servez-vous !

Ici c’est une recette ActionScript 3 qui permet d’appeler dynamiquement un objet qui est enregistré dans la bibliothèque de Flash avec un nom de « AS linkage »
Par exemple vous souhaitez faire apparaitre sur la scène plusieurs popups en fonction de boutons présents sur la scène.

Les boutons sont nommés « bt1 », « bt2 », etc …
Les objets movieclip sont créés dans la bibliothèque avec comme nom de classe (AS linkage, pas le nom d’acteur) « Pop_bt1 », « Pop_bt2 », etc …
Il suffit de créer une fonction générique qui va récupérer le nom du bouton pour appeler le bon acteur de la bibliothèque et l’ajouter à la scène.

Exemple :

bt1.addEventListener(MouseEvent.CLICK, ouvrePop);
bt2.addEventListener(MouseEvent.CLICK, ouvrePop);
// La fonction :
private function ouvrePop(evt:MouseEvent):void{
  var popClass:Class = getDefinitionByName("Pop_" + evt.target.name) as Class;
  var newPop:MovieClip=new popClass();
  addChild(newPop);
}