begin process at 2012 05 26 15:44:27
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Flash / Flash MX

 > 

Scripts

 > 

ActionScript

 > 

[as2]Atteindre une propriété enfant ou parent.


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

[as2]Atteindre une propriété enfant ou parent.

mercredi 30 décembre 2009 à 11:08:02 | [as2]Atteindre une propriété enfant ou parent.

sachie

Bonjour.

Je galère vraiment en as2.
J'ai un clip SurMenu avec sa classe SurMenu.as
J'ai un clip Menu avec sa classe Menu.as.
Dans SurMenu.as il y a une instance de Menu.

Je voudrais que lorsque je clique sur un bouton de Menu SurMenu soit averti.
J'ai pensé à trois solutions :

1-Abonner les boutons de Menu dans SurMenu.as :
this.MyMenu._cmd1.onRelease=this._cmd1DeMenuClique;

mais ma fonction _cmd1DeMenuClique de SurMenu.as n'est jamais appelée.
et en règle générale je n'arrive pas à atteindre les éléments de la classe instancé(éléments public évidement).

2-Appeler une fonction de SurMenu.as dans Menu.as, donc dans Menu.as:
//dans constructeur
this._cmd1.onRelease = this._changeFor1;

//puis hors constructeur
private function _changeFor1()
{
this._parent.OneHaveChanged();
}

Mais la fonction OneHaveChanged(public ou private) n'est jamais appelée.

3-écouteur d'événement :
Mais même problème que 1 non accès au propriété de l'instance de Menu.
De plus quand je fais ceci dans SurMenu.as:
//declaration
var lstChangeType:Object = new Object( ) ;

//puis dans le constructeur
lstChangeType.onRelease = this._typeHaveChanged;
_MenuType._cmd1.addListener(lstChangeType);

J'ai :
La méthode nommée 'addListener' n'existe pas.

Si quelqu'un a une piste Merci.
Quelqu'un que si ça continu avec as2 il va jeter le pc par la fenêtre.
samedi 2 janvier 2010 à 23:15:30 | Re : [as2]Atteindre une propriété enfant ou parent.

piere2

Bonjour, Rien compris...
Tu veux faire quoi (en language simple);
un menu et des sous menus?
Et la possibilité d'indiquer au menu dans quel sous menu tu es?


Pi'ère2
lundi 4 janvier 2010 à 09:02:31 | Re : [as2]Atteindre une propriété enfant ou parent.

sachie

Bonjour Pi'ère2
Bon je vais réessayer^^

En fait j'ai une un objet Menu déclaré dans ma classe SurMenu et je voudrais que lorsque je clique sur un bouton de Menu une fonction de SurMenu soit lancée.
lundi 4 janvier 2010 à 09:44:56 | Re : [as2]Atteindre une propriété enfant ou parent.

piere2


Bonjour,
peux-tu m'envoyer le code pour que je puisse l'examiner et me donner quelques explications utiles pour faire des tests comme ce qu'il faut obtenir pour chaque bouton cliqué?


Pi'ère2
lundi 4 janvier 2010 à 09:55:12 | Re : [as2]Atteindre une propriété enfant ou parent.

sachie

Voici ma classe SurMenu :

Code :
import lib.*;
import UI.*;
import UI.ConfigMenu.*;

class UI.SurMenu extends MovieClip
{
	private var _Menu:UI.ConfigMenu.Menu;
	
	//constructeur
	public function SurMenu() 
	{
		this._Menu = new UI.ConfigMenu.Menu();
	}
	
	//type a changé
	public function _typeHaveChanged()
	{_root.catalogContainer.txtTest.text = _Menu.Type;}
}


Et voici la classe Menu :
Code :
import lib.*;
import UI.*;

class UI.ConfigMenu.Menu extends MovieClip
{
        //declarations
        private var _leType:String;
        
        private var _cmd1:Button;
        private var _cmd2:Button;
        private var _cmd3:Button;
        private var _cmd4:Button;
        
        //constructeur
        public function Menu() 
        {
                this._cmd1.onRelease = this._changeFor1;
                this._cmd2.onRelease = this._changeFor2;
                this._cmd3.onRelease = this._changeFor3;
                this._cmd4.onRelease = this._changeFor4;
                _cmd1._alpha=100;_cmd2._alpha=50;_cmd3._alpha=50;_cmd4._alpha=50;
        }
        
        //accesseurs
        public function get Type():String
        {return _leType;}
        public function set Type(theType:String)
        {_leType=theType;}
        
        
        //on change le style
        private function _changeFor1():Void
        {_leType ="1";_cmd1._alpha=100;_cmd2._alpha=50;_cmd3._alpha=50;_cmd4._alpha=50;}
        private function _changeFor2():Void
        {_leType ="2";_cmd1._alpha=50;_cmd2._alpha=100;_cmd3._alpha=50;_cmd4._alpha=50;}
        private function _changeFor3():Void
        {_leType ="3";_cmd1._alpha=50;_cmd2._alpha=50;_cmd3._alpha=100;_cmd4._alpha=50;}
        private function _changeFor4():Void
        {_leType ="4";_cmd1._alpha=50;_cmd2._alpha=50;_cmd3._alpha=50;_cmd4._alpha=100;}
        
}


En faite je voudrais appeler la fonction '_typeHaveChanged()' de SurMenu lors d'un clique sur un des boutons de Menu.
lundi 4 janvier 2010 à 10:29:56 | Re : [as2]Atteindre une propriété enfant ou parent.

piere2

Si je comprends bien tu cherches à rendre plus transparents tous les boutons de ton menu autres que celui qui est cliqué?




Pi'ère2
lundi 4 janvier 2010 à 10:33:55 | Re : [as2]Atteindre une propriété enfant ou parent.

sachie

Non ça c'était un autre problème que j'ai résolu, d'ailleurs le code présenté est erroné, dans les fonctions _changeFor ça devrait être _parent._cmd1._alpha=50 et non _cmd1._alpha=50.

Moi ce que je veux c'est que lorsque je clique sur _cmd1,_cmd2,_cmd3 ou _cmd4 qui se trouvent dans Menu, j'aille appeler _typeHaveChanged() que se trouve dans SurMenu.
lundi 4 janvier 2010 à 11:48:37 | Re : [as2]Atteindre une propriété enfant ou parent.

piere2

Donc un TextField dynamique affiche les états de tes boutons?
Si c'est le cas je trouve que la méthode est bien compliquée.
J'aurais juste fait un tableau contenant les valeurs alpha de mes différents boutons et attribué les nouvelles valeurs avec une boucle for à chaque clic;
ensuite avec une autre boucle for on lit le tableau et on écrit "_cmd"+i+"._alpha=" = tableau[i]


Pi'ère2
lundi 4 janvier 2010 à 11:55:14 | Re : [as2]Atteindre une propriété enfant ou parent.

sachie

C'est pas réellement cela.
Le TextField n'est là que pour tester la récupération d'une valeur.
L'état du alpha des boutons, ça y est c'est géré je m'en occupe plus.

Ce que je veux en gros c'est savoir si un bouton de Menu a été cliqué et si oui lequel.
Afin qu'en fonction du bouton je lance un traitement différent.

Donc j'ai pensé a appeler une fonction de SurMenu(_typeHaveChanged) depuis Menu.
Mais il y a peut être d'autres solutions.

Résumé :
J'ai ma classe SurMenu dans laquelle je déclare un objet de type Menu.
Dans Menu j'ai 4 boutons, et lors d'un clique sur un de ces boutons je voudrais que SurMenu soit averti.
lundi 4 janvier 2010 à 12:10:46 | Re : [as2]Atteindre une propriété enfant ou parent.

piere2

Je persiste donc à penser qu'il faut utiliser un tableau.
Pour savoir quel bouton a été cliqué tu peux utiliser un truc du genre:

th = this;//le menu
for(i in th){
if(th[i] instanceof Button){
th[i].onRelease = function(){
n = this._name.slice(4);
action = tableau[i];
}
}
}

ou alors mettre le code dans le boutton:
th = this;
th2 = this._parent;
th.onRelease = function(){
n = this._name.slice(4);
action = th2.tableau[i];
}


Pi'ère2

1 2

Cette discussion est classée dans : menu, propriété, atteindre, as2, surmenu


Répondre à ce message

Sujets en rapport avec ce message

pas de propriété useHandCursor pour un composant "menu" (flash pro mx 2004) ? [ par JPGN ] Comment faire pour que le curseur de la souris se transforme en "pointer" au survol des items cliquables d'un composant menu ? Apparemment le composa AS2 en AS3 [ par duceduce ] bonjour à tous étant nouveau ici je vous souhaite à tous un bien le bonjour j'ai un problème avec un code étant un ancien de l'as2 je souhaite transfo faire disparaitre une scene en AS2 [ par woodgandja ] Bonjour a tous j'ai un probleme en AS2 sur un site perso j'ai cree plusieurs scene de 1 a 11 et j'ai un menu caroussel 3D sur ma scene 3 qui renvoi s Bouton dans un bouton... [ par Jenny2705 ] Bonjour, J'aurais souhaité un peu d'aide concernant un soucis de bouton dans flash. En effet,j'ai un bouton, qui au survol affiche comme un sous menu eval et this score [ par sepult ] Bonjour, Alors voila, sur mon jeu j'ajoute des scores par le eval qui est de l'AS1. Je voudrait en faite le faire en AS2. En AS1 : score = eval("sco Un menu dynamique doit-il forcément être à la racine? [ par ptiteteteu ] Bonjour, voici une question toute bête pour les pro, un vrai casse tête pour une débutante... Mon menu dynamique ne marche que lorsqu'il est à la raci Insérer une template menu dans un site AS3 [ par davidfoch ] Bonjour, Est-ce que quelqu'un peut m'aider, je ne trouve pas de solution à ça: Je viens de télécharger un menu dynamique en version: ActionScript 2.0 menu en boule avec profondeur [ par vegetalain ] Salut salut ! je voudrais faire un menu comme celui qu'on peut voir sur cette page (en bas à gauche, sous le titre "Tag") : http://www.blogmci.com/?ta Menu horizontal défilant [ par yono ] Bonjour, Je cherche une source pour faire un menu comme sur ce site (menu du bas qui défile) http://www.president.fr/site.php Une idée ou trouver ç


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,686 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales