IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ActionScript 1 & ActionScript 2 Discussion :

[FLASH 8] Migration AS1 -> AS2


Sujet :

ActionScript 1 & ActionScript 2

  1. #1
    CUCARACHA
    Invité(e)
    Par défaut [FLASH 8] Migration AS1 -> AS2
    Salut,

    je suis le conseil de Jean Philippe et je passe à AS2.

    J'ai vu la nouvelle structuration objet, elle est bien plus proche de ce que l'on a l'habitude de trouver lorsque l'on développe en dot Net par exemple. C'est beaucoup plus propre qu'avant et le fait de pouvoir définir un fichier de classe est bien pratique puisque ça évite d'avoir à créer des images et des calques dédiés au code.

    Ma première question concerne le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Object.registerClass("nomClip",nomClasse);
    Quelle est le nouvel usage, dans la doc, je trouve bien cette référence pour AS1 mais il n'y a pas de lien type "Nouvelle syntaxe"...

    Pourriez-vous m'aider à ce sujet ?

    D'avance merci

    Laurent

  2. #2
    Membre Expert
    Avatar de jean philippe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 062
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 062
    Par défaut
    Je suis pas sur mais registerClass fonctionne tres bien en AS2,. Je ne crois qu'il ait été remplacé
    Par contre je te conseille de lire cet article fort intéressant traitant de ce sujet : http://www.tweenpix.net/blog/index.p...ka-dixit-peter

  3. #3
    CUCARACHA
    Invité(e)
    Par défaut Très puissant
    Salut,

    C'est du nectar La puissance de ce langage me laisse présager des possibilités très sympathiques en termes de création de composants.

    @+

    Laurent
    Dernière modification par CUCARACHA ; 24/09/2006 à 15h50.

  4. #4
    CUCARACHA
    Invité(e)
    Par défaut [AS2] Menu hiérarchique XML (Etape1)
    Re,

    J'ai fini de porter le travail que j'avais déja effectué de AS1 vers AS2 en tenant compte des explications données dans la page que tu m'as indiquée.

    J'ai donc

    • Menus.xml
    • clMenu.as
    • TestMenu.fla


    Menus.xml
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <Root_Element>
       <Menus>
          <Menu caption="Accueil" open="clpPannel001Accueil"/>
          <Menu caption="Tchat" open="clpPannel002Tchat"/>
          <Menu caption="Messagerie" open="clpPannel003Messagerie">
             <SousMenus>
                <Menu caption="Envoyés" open="clpPannel003Messagerie01"/>
                <Menu caption="Reçus" open="clpPannel003Messagerie02"/>
             </SousMenus>
          </Menu>
       </Menus>
    </Root_Element>
    clMenu.as
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
     
    /*
    Class : clMenu
    Auteur : Laurent Jordi
    Modifée le : 24/09/2006
    Copyright : Laurent Jordi - EZ Logic Monaco - <a href="http://www.ezlogic.mc" target="_blank">http://www.ezlogic.mc</a>
    */
    class clMenu extends MovieClip 
    {
    	//Variables de liaison
    	public static var id:String 
    		= "__Packages.clMenu";
    	private static var _isSymbolLinked:Boolean 
    		= Object.registerClass(id, clMenu);	
     
    	//Variables d'occurence privée
    	private var __index:Number;
    	private var __caption:String;
    	private var __link:String;
    	private var __childrenMenus:Array;
    	//Constructeur
    	//********************************************
    	public function clMenu() {
    		var intTop:Number;
    		var tf = this.createTextField("txtCaption",this.getNextHighestDepth(),0,intTop,this._parent._width,10);
    		tf.autoSize = "left";
    	}
    	//********************************************
    	public function get index():Number {
    		return this.__index;
    	}
    	public function set index(value:Number):Void {
    		this.__index = value;
    	}
    	//********************************************
    	public function get caption():String {
    		return this.__caption;
    	}
    	public function set caption(value:String):Void{
    		this.__caption = value;
    		//Mise à jour du champ texte
    		this["txtCaption"].text = value;
    	}
    	//********************************************
    	public function get link():String {
    		return this.__link;
    	}	
    	public function set link(value:String):Void{
    		this.__link = value;
    	}	
    	//********************************************
    }
    TestMenu.fla

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    import clMenu;
     
    //Variables globales
    var maxIndex:Number = -1;
     
    // Chargement du XML
    var menuXML:XML = new XML();
    var szSourceXLM:String = "Menus.xml"
    menuXML.onLoad = menuXML_onLoad;
    menuXML.load(szSourceXLM);
     
    function menuXML_onLoad(success) {
    var currentNode;
    	_root.createEmptyMovieClip("clpMainMenu01",1);
    	var parentMenu:MovieClip = _root["clpMainMenu01"];
    	var currentMenu:MovieClip;
    	var currentMenuName:String;
    	var previousMenu:Number;
    	if (success) {
    		currentNode = menuXML.firstChild.childNodes[1].childNodes		[1]; // Liste des menus
    		while (currentNode!=null) {
    			switch (currentNode.nodeName) {
    			case "Menu":
    				_root.maxIndex++;
    				currentMenuName = "MenuItem" + 					_root.maxIndex;
    				currentMenu = parentMenu.attachMovie	(clMenu.id,currentMenuName,parentMenu.getNextHighestDepth());
    				currentMenu.index = _root.maxIndex;
    				currentMenu.caption = 						currentNode.attributes.caption;
    				currentMenu.link = 						currentNode.attributes.open;
    				if(currentMenu.index>0){
    					previousMenu = 							currentMenu.index - 1;
    					trace(currentMenu._parent						["MenuItem" + 							previousMenu]._y);
    					currentMenu._y = parentMenu					["MenuItem" + 							previousMenu]._y + 						parentMenu["MenuItem" + 						previousMenu]._height;
    				} else {
    					currentMenu._y = 0;
    				}
    				break;
    			case "SousMenus":
    				//ToDo
    				break;
    			}
    			currentNode = 							currentNode.nextSibling.nextSibling;
    		}
    	}
    }
    Etape suivante : Instauration de la récursivité pour charger les sous menus en cascade.

    Laurent Jordi

  5. #5
    Membre Expert
    Avatar de jean philippe
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    2 062
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 2 062
    Par défaut
    bien joué

  6. #6
    CUCARACHA
    Invité(e)
    Par défaut Merci
    Merci (Je faisais une petite sièste...)

  7. #7
    CUCARACHA
    Invité(e)
    Par défaut Création de la structure récursive
    Re,

    Donc, avant de poursuivre et d'ajouter les listeners qui permettront de rendre ce système de menus dynamiques, nous devons faire en sorte qu'il soit possible d'ajouter simplement des menus ou des sous-menus à notre structure.

    Je pense qu'il faut d'abord créer une collection de menu. Ce sera le clip racine qui contiendra les menus de premier niveau. Ce clip racine pourra être personnalisé couleurs, définition des polices en fonction des niveaux, dimensions etc.

    La classe comportera donc un tableau de menus qui pourront eux mêmes contenir une collection de sous menus.

    Prochain post à venir.

    Laurent Jordi

  8. #8
    CUCARACHA
    Invité(e)
    Par défaut [Question] Utilisation des classes en cascade
    Re,

    La question est de savoir comment on utilise les classes en cascade. Doit-on importer la classe dans la collection ET dans le clip de test ?

    @+

    Laurent

Discussions similaires

  1. [FLASH 8] Migration AS2 -> AS3 ?
    Par CUCARACHA dans le forum EDI/Outils
    Réponses: 7
    Dernier message: 24/09/2006, 19h51
  2. [FLASH MX2004][AS2] Composition
    Par bolo dans le forum Flash
    Réponses: 9
    Dernier message: 10/12/2004, 16h53
  3. [FLASH MX2004] [AS2] Surchage
    Par bolo dans le forum ActionScript 1 & ActionScript 2
    Réponses: 3
    Dernier message: 09/12/2004, 16h27
  4. [FLASH MX2004] [AS2] Dialogue entre 2 SWF- tellTarget ???
    Par Geilgestorm dans le forum ActionScript 1 & ActionScript 2
    Réponses: 11
    Dernier message: 24/10/2004, 22h07
  5. [FLASH MX2004 PRO] Code de préload en AS2 & player 7
    Par Geilgestorm dans le forum Flash
    Réponses: 3
    Dernier message: 22/10/2004, 16h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo