IoC et Design patterns dans VEGAS - eBook in progress

2 views
Skip to first unread message

eKameleon

unread,
Dec 8, 2008, 10:59:55 AM12/8/08
to VEGAS - ECMASCript & ActionScript OpenSource framework
Hello :)

Je rédige depuis quelques mois (comme je peux) une documentation
complète de VEGAS et Maashaack en e-book sur Google Documents.

Vous avez pu lire l'essentiel de cette documentation en avant première
sur mon blog mais il est clair que la lecture en Google Documents et
plus agréable !

Je vais donc pour le moment diffuser en publique les 3 premières
partie du chapitre sur le design pattern IoC :

A - Design Pattern d'inversion de contrôle - Généralités

* http://docs.google.com/Doc?id=dfd9s8cg_15g3ct8rfb

B - Les définitions d'objets.

* http://docs.google.com/Doc?id=dfd9s8cg_27c5s2pwkd

C - Configuration d'une fabrique IoC

* http://docs.google.com/View?docid=dfd9s8cg_26dzzj8vcv

La partie D n'est pas totalement finie donc je préfère attendre un peu
avant de la diffuser complètement en publique.

Les mêmes articles en anglais sont en cours mais cela va prendre un
peu plus de temps ;) (Merci au passage Benjamin (aka Idden <http://
www.idden.net/blog/> pour le premier article traduit )

PS : je vais mettre d'ici peu des licences sur les documents pour
éviter les problèmes et ambiguïtés ;)

EKA+ :)

Matthieu

unread,
Dec 8, 2008, 4:08:29 PM12/8/08
to VEGAS - ECMASCript & ActionScript OpenSource framework
Merci pour le partage de tes documents.
C'est clair que c'est plus pratique que le blog :).

Je continue l lecture de tout tes tutoriels qui sont clairs.

J'ai une question, est ce qu'il existe un tutoriel complet sur la
construction, l'architecture de base pour utiliser vegas et ioc dans
une application RIA ? (à part les 2 exemples gallery et sudoku du svn)

Un tutoriel est tout aussi pratique qu'un exemple. Et plus explicite.
Sinon j'étudierais ces 2 exemples, je devrais m'en sortir.

On 8 déc, 16:59, eKameleon <ekamel...@gmail.com> wrote:
> Hello :)
>
> Je rédige depuis quelques mois (comme je peux) une documentation
> complète de VEGAS et Maashaack en e-book sur Google Documents.
>
> Vous avez pu lire l'essentiel de cette documentation en avant première
> sur mon blog mais il est clair que la lecture en Google Documents et
> plus agréable !
>
> Je vais donc pour le moment diffuser en publique les 3 premières
> partie du chapitre sur le design pattern IoC :
>
> A - Design Pattern d'inversion de contrôle - Généralités
>
>  *http://docs.google.com/Doc?id=dfd9s8cg_15g3ct8rfb
>
> B - Les définitions d'objets.
>
>  *http://docs.google.com/Doc?id=dfd9s8cg_27c5s2pwkd
>
> C - Configuration d'une fabrique IoC
>
>  *http://docs.google.com/View?docid=dfd9s8cg_26dzzj8vcv
>
> La partie D n'est pas totalement finie donc je préfère attendre un peu
> avant de la diffuser complètement en publique.
>
> Les mêmes articles en anglais sont en cours mais cela va prendre un
> peu plus de temps ;) (Merci au passage Benjamin (aka Idden <http://www.idden.net/blog/> pour le premier article traduit )

Matthieu

unread,
Dec 8, 2008, 4:47:34 PM12/8/08
to veg...@googlegroups.com
Salut,

D'après ce que j'ai compris, l'extension pegas de ton framework vegas permet de gérer tous les éléments graphiques, c'est à dire ?

Je n'ais pas trouvé de tutoriels expliquant son utilisation sur ton blog ou le groupe google ? As tu des exemples d'implémentation ?

Pegas est-il capable de gérer tout ce qui est scrollbar, bouton, combobox, list ? Ou est ce qu'il faut que j'utilise mon propre framework ?
Si oui, est-ce possible et comment de personnaliser ces éléments avec des swf externes, images ?



Matthieu
www.delfiweb.com

ekameleon

unread,
Dec 8, 2008, 5:41:04 PM12/8/08
to veg...@googlegroups.com
Hello :)

Dans VEGAS tous les exemples sont dans trunk/bin/test ;) Tu as des FLAs pour t'amuser avec la plupart des classes et implémentations des différents Framework :)

Comme je te l'ai déjà dit tu as une différence entre ASGard et LunAS :)

ASGard contient des classes de bases liées au framework flash.display, flash.media et flash.text pour aller plus loin très simplement avec les éléments graphiques

LunAS par contre est un framework de base pour créer des composants mais aussi pour en utiliser super simplement ;) Des tutoriaux vont sortir dans pas longtemps à ce sujet :)

En attendant tu dois juste ouvrir les FLAs pour tester les fonctionnalités des différentes library ;)

Sinon dans PEGAS tu vas trouver des outils pour manipuler les couleurs et également le package pegas.draw qui contient tous les outils qu'il faut pour créer des dessins, shape & co avec mes "Pen" spécialisés + le package pegas.transitions avec un tuto complet sur mon blog là dessus et des tas d'exemple :)

PS : tu devrais vraiment lire mes tutoriaux, mes articles sur mon blog sur le sujet de VEGAS et surtout la doc ;)

Faut que je la mette à jour mais il y a beaucoup de chose dedans et tu trouves la dernière version sur le SVN en général de VEGAS ;) je la mets à jour ce soir au passage ;)

EKA+ :)

ekameleon

unread,
Dec 8, 2008, 5:44:10 PM12/8/08
to veg...@googlegroups.com
Hello :)

Sodoku est vraiment pas implémenté ;) Base toi sur la racine du trunk (application simple pour afficher un panneau avec un bouton) et sur eGallery pour le moment ;)

Pour moi un bon développeur apprend avant tout en lisant du code et pas des livres ou des tutoriels ;) Reste qu'avec mes articles sur l'IoC, mes articles sur le pattern Visitor et MVC (que je dois finir de mettre à jour car tjs en AS2 pour ce dernier) et l'exemple sur AST'r tu as tout ce qu'il faut pour t'y mettre ;) 

Et n'hésite pas à poser des questions précices sur ce que tu ne comprends pas ;) Je suis un peu tout seul pour tout documenter, coder etc... et forcément cela prend un peu de temps de tout faire :) Mais je fais toujours de mon mieux pour faire avancer tout mon travail selon les besoins de chacun ;)

EKA+ :)

Matthieu

unread,
Dec 9, 2008, 4:12:01 AM12/9/08
to veg...@googlegroups.com
Merci pour toutes ces précisions.

J'ai déjà commencé avec les tutoriels sur ton blog

    Je m'entraine avec les exemples de chaque tutoriel, je viens de découvrir le format eden qui me plait bien. Plus facile que le xml à produire et plus léger.

    Ensuite comme tu me le conseilles, j'étudierais les exemples du svn puis l'application egallery.

    Et je pourrais commencer à développer des applications ioc :)

    Merci pour la doc, le support google group et le framework vegas :)

    Matthieu
    www.delfiweb.com


    ekameleon a écrit :

    Matthieu

    unread,
    Dec 9, 2008, 11:21:12 AM12/9/08
    to veg...@googlegroups.com
    Salut,

    J'ai une question sur le tutoriel : B - Les définitions d'objets (Partie - 1/5)

    J'ai effectuer la 1ère partie avec la création des objets et de la factory.


    J'ai reproduis les différents exemples. Par conte, je souhaiterais délocaliser le contenu de objects dans un fichier eden.
    J'ai donc copier créer le fichier config_user.eden suivant :
    objects =
    [
        { 
        id            : "address"  ,
        type          : "test.Address" ,
        properties    :
        [
            { name : "city"   , value : "Marseille" } ,
            { name : "street" , value : "xx xxx xxxxxxxxxxx" } ,
            { name : "zip"    , value : 13001 }
        ]
        }
        ,
        { 
        id         : "job_dev"   ,
        type       : "test.Job"  ,
        scope      : "prototype" ,
        properties : [ { name:"name" , value:"AS Developper" } ]
        }  
        ,
        {
        id         : "user" ,
        type       : "test.User" ,
        arguments    :
        [
            { value : "eKameleon" } ,
            { value : "ALCARAZ"   } ,
            { ref   : "address"   }
        ] ,
        lazyInit      : true ,
        singleton     : true ,
        destroy       : "destroy" ,
        init          : "initialize" ,
        properties    :
        [
              { name : "age"       , value : 31        } ,
              { name : "firstName" , value : "Marc"    } ,
              { name : "job"       , ref   : "job_dev" } ,
              { name : "url"       , value : "http://www.ekameleon.net" },
     
              { name : "setMail" , arguments : [ { value : "ekameleon [at] gmail.com" } ] }
        ]
        }
    ] ;




    Dans la classe main.as qui étend movie clip, j'exécute ce code :
                var loader:ECMAObjectLoader = new ECMAObjectLoader( "config_user.eden", "config/") ;
              //  loader.root = this ; // to use the "#root" expression in the 'ref' attribute.
                loader.run();

                var factory:ObjectFactory = loader.factory ;
                 var user:User = factory.getObject( "user" ) as User ;
                
                
                 Logger.info("user firstName : ", user.firstName ) ;
                Logger.info("user Adress city : ", user.address.city) ;

    Je souhaiterais accéder à l'objet User qui été créer à partir du fichier eden.
    Je n'arrive pas à accéder aux propriétés de l'objet User, comment faire ?

    Étant sous linux, j'effectue du debug avec l'extension firefox : firebug.
    Logger me renvoie rien. Je ne comprend pas.


    Mes questions peuvent paraître simpliste, je débute l'apprentissage des design pattern.
    Je connais bien le framework AS2 pixlib et les design pattern de base (mvc, mvcfc, singleton...).

    Je découvre l'IOC.




    --
    Matthieu
    www.delfiweb.com

    ekameleon

    unread,
    Dec 9, 2008, 12:01:46 PM12/9/08
    to veg...@googlegroups.com
    hello :)

    Tu as pas tout lu ;)

    Quand tu charges un fichier externe faut attendre que la factory soit chargée complètement avant de récupérer les références dans la fabrique ;)

    Regarde vraiment l'exemple dans AST'r (le basique dans la racine du trunk) c'est vraiment important que tu prennes 10 minutes pour regarde cet exemple ;)

    A regarder la classe Main du projet :


    Regarde bien le linkageEnforcer ! C'est important si tu utilises pas les classes dans ton code mais que l'IoC en a besoin de forcer dans le swf la présence des classes.

    Ensuite le fichier application.eden principal pour initialiser la fabrique :


    Pour l'exemple tu peux juste essayer le "hello world" de mon tuto ;) En principe il permet de bien commencer sans se prendre la tête.

    PS : tu as tous les exemples de l'article dans le SVN de VEGAS dans AS3/trunk/bin/test/asgard/net/ECMAObjectLoader.... et dans AS3/trunk/bin/test/andromeda/ioc/factory

    Sinon dans ton code manque pas mal d'infos ;) Soit plus précis.. tu mets des logger etc... mais tu utilises mon système de log ? 

    Mon système de log est simple à utiliser dans VEGAS car intégré dans la plupart des classes importantes. J'utilise un API proche de celui de Flex mais sans les dépendances et codé à ma sauce ;)

    Dedans tu as des targes pour la console SOS, FlashInspector, etc... en AS3 je n'ai pas implémenté pour le moment de FireBugTarget (il existe en AS2) si tu en as besoin tu peux faire une issue sur le Google Code de VEGAS et faire un proposal pour que je l'implémente ;)

    EKA+ :)

    eKameleon

    unread,
    Dec 9, 2008, 12:29:22 PM12/9/08
    to VEGAS - ECMASCript & ActionScript OpenSource framework
    hello :)

    J'en ai profité à l'instant pour simplifier l'exemple de base dans
    AST'r AS3 et j'ai ajouté dans la classe Application les événements
    ActionEvent.START et ActionEvent.FINISH sur le loader pour que tu vois
    comment coder une fois la fabrique initialisée. (tu peux faire un
    update sur AST'r avec la rev 118)

    Par contre un truc important c'est qu'en général pas besoin de lancer
    du code dans la classe Main, car en se débrouillant bien tu peux
    utiliser les "process" de VEGAS avec l'interface
    system.process.Runnable pour lancer automatiquement l'action que tu
    veux une fois que tout est chargé et initialisé :)

    Par exemple dans l'exemple eGallary de AST'r tu as :

    http://code.google.com/p/astr/source/browse/trunk/AS3/trunk/examples/egallery/trunk/deploy/context/application.eden

    Avec dans le "objects" principal une commande de type InitApplication
    qui implémente l'interface Runnable qui est lancée automatiquement
    (singleton non lazyInit) avec sa méthode "run" une fois que la
    fabrique est initialisée.

    Donc une fois que la fabrique est initialisée il faut regarder :

    http://code.google.com/p/astr/source/browse/trunk/AS3/trunk/examples/egallery/trunk/src/egallery/process/InitApplication.as

    Si tu as utilisé Pixlib, dans Pixlib tu as les commandes avec la
    méthode execute()... dans VEGAS c'est pareil ou presque avec des
    objets Runnable et une méthode run() simple (faut distinguer dans
    VEGAS les commandes avec l'interface Runnable et les controller ou
    listeners avec l'interface vegas.events.EventListener que l'on utilise
    en général pour faire du MVC). Ici les commandes sont des simples
    déclencheurs d'actions... et au dessus tu as les "Action" qui sont des
    commandes qui ont un début et une fin ;) Bref... tu verras en
    regardant les exemples du package andromeda.process ce qu'il en est
    exactement de tout cela

    PS : note pour moi même... vérifier les exemples FLA de
    andromeda.process.

    EKA+ :)




    On 9 déc, 18:01, ekameleon <ekamel...@gmail.com> wrote:
    > hello :)
    > Tu as pas tout lu ;)
    >
    > Quand tu charges un fichier externe faut attendre que la factory soit
    > chargée complètement avant de récupérer les références dans la fabrique ;)
    >
    > Regarde vraiment l'exemple dans AST'r (le basique dans la racine du trunk)
    > c'est vraiment important que tu prennes 10 minutes pour regarde cet exemple
    > ;)
    >
    > A regarder la classe Main du projet :
    >
    > http://code.google.com/p/astr/source/browse/trunk/AS3/trunk/src/astro...
    >
    > Regarde bien le linkageEnforcer ! C'est important si tu utilises pas les
    > classes dans ton code mais que l'IoC en a besoin de forcer dans le swf la
    > présence des classes.
    >
    > Ensuite le fichier application.eden principal pour initialiser la fabrique :
    >
    > http://code.google.com/p/astr/source/browse/trunk/AS3/trunk/deploy/co...
    >
    > Pour l'exemple tu peux juste essayer le "hello world" de mon tuto ;) En
    > principe il permet de bien commencer sans se prendre la tête.
    >
    > PS : tu as tous les exemples de l'article dans le SVN de VEGAS dans
    > AS3/trunk/bin/test/asgard/net/ECMAObjectLoader.... et dans
    > AS3/trunk/bin/test/andromeda/ioc/factory
    >
    > Sinon dans ton code manque pas mal d'infos ;) Soit plus précis.. tu mets des
    > logger etc... mais tu utilises mon système de log ?
    >
    > Mon système de log est simple à utiliser dans VEGAS car intégré dans la
    > plupart des classes importantes. J'utilise un API proche de celui de Flex
    > mais sans les dépendances et codé à ma sauce ;)
    >
    > Dedans tu as des targes pour la console SOS, FlashInspector, etc... en AS3
    > je n'ai pas implémenté pour le moment de FireBugTarget (il existe en AS2) si
    > tu en as besoin tu peux faire une issue sur le Google Code de VEGAS et faire
    > un proposal pour que je l'implémente ;)
    >
    > EKA+ :)
    >
    > Le 9 décembre 2008 17:21, Matthieu <matthieu.deloi...@delfiweb.com> a écrit
    > :
    >
    > >  Salut,
    >
    > > J'ai une question sur le tutoriel : B - Les définitions d'objets (Partie -
    > > 1/5)<http://www.ekameleon.net/blog/index.php?post/2008/08/01/B-Les-definit...>
    > >           { name : "url"       , value : "http://www.ekameleon.net"<http://www.ekameleon.net>},

    Matthieu

    unread,
    Dec 9, 2008, 5:24:52 PM12/9/08
    to veg...@googlegroups.com
    Merci pour tes explications :)

    J'ai réussi à m'en sortir sur mon exemple de test :-)

    Je continue à étudier tes exemples.

    Note : j'ai un peu galéré sous eclipse pour les mises à jour automatiques des svn, avant j'utilisais tortoisesvn sous windows. Eclipse n'est pas très intuitif pour la gestion automatique des svn. Enfin bon j'ai fini par trouver.

    eKameleon a écrit :
    --

    InfosLibres - Observez, Partagez, Réagissez.

    ↑ Utilisez cette signature dans vos emails ou sur votre site

    Observez, Partagez, Réagissez sur www.InfosLibres.fr
    RSS : S'abonner au flux RSS http://www.infoslibres.fr/feed/
    Newsletter : Recevoir les articles par email http://www.infoslibres.fr/phpmynewsletter/form.php

    ekameleon

    unread,
    Dec 9, 2008, 5:40:44 PM12/9/08
    to veg...@googlegroups.com
    Hello :)

    J'utilise Subclipse de temps en temps mais je t'avoue que personnellement j'utilise à 98% TortoiseSVN ;) Maintenant en général si tu es sous Linux le mieux c'est de bosser en ligne de commande avec SVN c'est franchement plus simple.

    EKA+ :)
    infoslibres.1.gif

    Nicolas SURIAN

    unread,
    Dec 10, 2008, 3:16:20 AM12/10/08
    to veg...@googlegroups.com
    Hello,

    Si tu ne sais pas comment utiliser subersion sous linux va voir ces
    ressources que j'ai déniché car moi aussi j'utilise autant windows que
    linux.

    En particulier Ubuntu 8.04.

    http://doc.ubuntu-fr.org/subversion#installer_un_serveur_svn
    http://www.linuxfromscratch.org/blfs/edguide/chapter03.html

    Perso, je n'ai fait qu'installer subversion avec sa librairie apache
    pour l'utiliser.

    Je suis en train de faire un tuto complet que je mettrais en ligne
    d'ici peu de temps.

    Mais pour toi après il ne reste plus qu'à faire cette commande dans la console:
    svn co URL[@REV] [PATH]

    A++
    Nairus ;)


    Le 09/12/08, ekameleon<ekam...@gmail.com> a écrit :

    >> On 9 déc, 18:01, ekameleon <ekamel...@gmail.com> <ekamel...@gmail.com>

    >> <http://www.ekameleon.net><http://www.ekameleon.net>

    >> Réagissez.]<http://feeds.feedburner.com/%7Er/infoslibres/%7E6/1>


    >>
    >> ↑ Utilisez cette signature dans vos emails ou sur votre

    >> site<http://www.feedburner.com/fb/a/headlineanimator/install?id=2064084&w=1>

    ekameleon

    unread,
    Dec 10, 2008, 3:21:43 AM12/10/08
    to veg...@googlegroups.com
    Hello :)

    Euh ? Quel rapport avec la conversation au dessus ? Mathieu parle juste de l'utilisation d'un client SVN sous Linux ;) Pas d'un serveur :) 

    A moins que tu conseille d'utiliser SVN en ligne de commande ?

    EKA+ :)

    Nicolas SURIAN

    unread,
    Dec 10, 2008, 3:31:28 AM12/10/08
    to veg...@googlegroups.com
    Hello,

    Oui c'est pour l'utiliser en ligne de commande.

    Mais à vrai dire j'ai pas essayé de lancer la commande de checkout
    sans avoir fait l'installation des paquets de subversion.

    Je crois que le paquet subversion n'est pas installé par défaut.
    A voir
    ;)

    Le 10/12/08, ekameleon<ekam...@gmail.com> a écrit :

    ekameleon

    unread,
    Dec 10, 2008, 3:48:37 AM12/10/08
    to veg...@googlegroups.com
    Ok ;) 

    Sans précision j'avais pas compris le pourquoi du comment ;)

    En effet je ne pense pas que SVN soit installé par défaut sur Linux mais une fois installé c'est le top :)

    EKA+ :)

    Matthieu

    unread,
    Dec 14, 2008, 10:24:43 AM12/14/08
    to veg...@googlegroups.com
    Salut

    Je suis sur les tutoriels avec le chargement de fichier externe d'éléments graphiques.

    D-Chargement-de-ressources-externes-Partie-2

    J'ai modifié le fichier eden et créé un swf contenant les éléments graphiques.

    Est ce possible de définir directement dans la fabrique IOC pour le movieclip chargé depuis la dll.swf, de dire à un clip enfant de s'arrêter à une frame précise.
    L'équivalent AS de

    var oMc : MovieClip = new
    Square1();
    oMc.getChild().gotoAndStop("normal");

    Un truc du style :
            { name : "getChild().gotoAndStop()" , value  : "normal"  }


    Ou est ce que je dois le faire dans le code source une fois la fabrique construite, en appelant l'élément graphique par son id (ce qui est moins souple)?

    Ci dessous une partie du fichier eden.
         {
            id         : "my_logo" ,
            type       : "Square1"    ,
            singleton  : true      ,
            lazyInit   : true      ,
            properties :
            [
                { name : "x" , value  : 80 } ,
                { name : "y" , value  : 50  }

            ]
        } 

    ,
         {
            id               : "root" ,
            type             : "MovieClip"  ,
            factoryReference : "#root" ,
            singleton        : true ,
            properties       :
            [
                { name : "addChild" , arguments  : [ { ref:"oField" } ]},
            { name : "addChild" , arguments  : [ { ref:"my_rectangle" } ]},
            { name : "addChild" , arguments  : [ { ref:"my_menu_title" } ]},
            { name : "addChild" , arguments : [ { ref : "my_logo" } ]},
            { name : "addChild" , arguments  : [ { ref:"my_message" } ]}
            ]
         }
    --
    Matthieu
    www.delfiweb.com

    Matthieu

    unread,
    Dec 14, 2008, 10:53:34 AM12/14/08
    to veg...@googlegroups.com
    Une autre question par rapport aux librairies partagées et la fabrique IOC.

    J'ai modifié mon fichier eden pour ajouter les ressources graphiques en assembly.

    imports =
    [
         { resource : "library/dll.swf" , type:"assembly" }
    ] ;

    J'ai également déclaré des objets graphiques de la fabrique.
         {
            id         : "my_logo" ,
            type       : "ScrollBar"    ,

            singleton  : true      ,
            lazyInit   : true      ,
            properties :
            [
                { name : "x" , value  : 140 } ,

                { name : "y" , value  : 50  }
            ]
        }
        ,
         {
            id         : "Square2" ,
            type       : "Square2"    ,

            singleton  : true      ,
            lazyInit   : true      ,
            properties :
            [
                { name : "x" , value  : 200 } ,

                { name : "y" , value  : 50  }
            ]
        }
        ,
         {
            id         : "my_tooltip" ,
            type       : "ToolTip"    ,

            singleton  : true      ,
            lazyInit   : true      ,
            properties :
            [
                { name : "x" , value  : 170 } ,
                { name : "y" , value  : 160  }
            ]
        } 

    Et dans le code source de la classe Aplicaiton, je les affiche à l'écran :
     var oBtn : MovieClip = factory.getObject("Square2") ;
    addChild( oBtn );

    Ma question est : est-on obligé d'initialiser chaque éléments graphique de la fabrique dans le fichier eden ?
    Ou est ce possible de les déclarer directement dans le code source ?

    L'équivalent de ça :      {
            id         : "my_tooltip" ,
            type       : "ToolTip"    ,

            singleton  : true      ,
            lazyInit   : true      ,
            properties :
            [
                { name : "x" , value  : 170 } ,
                { name : "y" , value  : 160  }
            ]
        }   en AS3 ?

    Merci de prendre le temps de me répondre à chaque fois :) c'est sympa.
    --
    Matthieu

    www.delfiweb.com


    Matthieu

    unread,
    Dec 14, 2008, 10:58:56 AM12/14/08
    to veg...@googlegroups.com
    Une question par rapport à la factory crée à partir d'un fichier eden, est ce que c'est une instance Singleton ?

    _oLoader = new ECMAObjectLoader("config_user.eden" , "config/" ) ;
    _oLoader.root = this;// to use the "#root" expression in the 'ref' attribute.
    _oLoader.verbose = true; // see all errors
    _oLoader.run();
    var factory:ObjectFactory = _oLoader.factory ;

    var user:User = factory.getObject( "user" ) as User ;

    _oLoader est une propriété privée de la classe application.

    Pour récupérer la référence de la factory dans mon application, est ce que je dois m'occuper de conserver une référence ou y-t-il une autre solution (singleton) ?

    --
    Matthieu

    www.delfiweb.com


    ekameleon

    unread,
    Dec 14, 2008, 11:20:35 AM12/14/08
    to veg...@googlegroups.com
    Hello :)

    Pourrais tu ouvrir un nouveau post pour tes nouvelles questions? Sinon je vais être obligé par la suite de supprimer tes messages ;)

    En général c'est préférable pour rester cohérent et pas tout mélanger et que les membres du groups puisse profiter pleinement des discussions.

    1 - si ton clip est posé sur la scène principal d'un swf chargé avec un assembly tu peux créer une définition d'objet dans ton objet générique de ressource et utiliser dans ta fabrique les factory strategy

    Tu vas pouvoir du coup faire une nouvelle définition d'objet qui utilisera celle définie dans l'assembly par référence (factoryReference) et tu pourras même cibler une sous référence de ta définition d'objet principale et dans l'attribut "properties" tu pourras invoquer ton gotoAndStop :

    2 - si tu as juste dans la bibliothèque du swf un clip avec une classe qui contient un clip avec un nom d'occurence et que tu cherches à faire un gotoAndStop tu peux donc faire en gros :

    imports = [ { resource : "library/dll.swf" , type:"assembly" } ] ; var objects:Object = [ { id : "my_logo" , type : "Logo" , singleton : true , lazyInit : true , generates : ["sub_logo"] , properties : [ { name : "x" , value : 80 } , { name : "y" , value : 50 } ] } , { id : "sub_logo" , type : "flash.display.MovieClip" , factoryReference : "my_logo.subItem" , properties : [ { name : "gotoAndStop" , arguments:[ { value:5 } ] } ] } ];

    En gros quand tu vas appeler pour la première fois la définition d'objet "my_logo" l'instance de ton symbole Logo va être généré (Logo nom de la classe de ton symbole dans le swf externe) et avec l'attribut generates cela va automatiquement créer un helper avec une définition d'objet qui utilise l'attribut "factoryReference" et qui va cibler dans ton logo un sousclip qui se nomm "subItem" par exemple. Tu vas donc pouvoir lancer des actions ou initialiser cet objet à ce moment là avec cette définition d'objet qui sert avant tout de soutiens et qui sera pas utilisé directement dans le code de l'application :)

    PS : j'ai remarqué que tu poses beaucoup de questions et c'est très bien :) Mais essai d'être plus cohérent dans ton activité sur le Google Groups ;) N'hésite pas aussi à nous dire une fois que je t'ai répondu (ou quelqu'un d'autre) si tu as réussi, si tout va bien etc... car parfois j'ai un peu l'impression de te servir d'aide et un peu moins de dialoguer avec toi ;)

    EKA+ :)

    eKameleon

    unread,
    Dec 14, 2008, 11:23:04 AM12/14/08
    to VEGAS - ECMASCript & ActionScript OpenSource framework
    hello :)

    problème sur mon message en haut.. par contre tu continue à inonder ce
    post de questions....

    Je corrige :

    imports =
    [
    { resource : "library/dll.swf" , type:"assembly" }
    ] ;


    var objects:Object =
    [
    {
    id : "my_logo" ,
    type : "Logo" ,
    singleton : true ,
    lazyInit : true ,
    generates : ["sub_logo"] ,
    properties :
    [
    { name : "x" , value : 80 } ,
    { name : "y" , value : 50 }
    ]
    }
    ,
    {
    id : "sub_logo" ,
    type : "flash.display.MovieClip" ,
    factoryReference : "my_logo.subItem" ,
    properties :
    [
    { name : "gotoAndStop" , arguments:[ { value:5 } ] }
    ]
    }
    ];

    Je vais arrêter de te répondre dans ce post et je vais te demander de
    reposer tes questions dans des posts séparés sur le Google Groups...
    merci de bien respecter les règles du groups ;) et je te répondrai
    correctement ensuite :)

    eKA :)
    > Le 14 décembre 2008 16:24, Matthieu <matthieu.deloi...@delfiweb.com> a écrit
    > :
    >
    > >  Salut
    >
    > > Je suis sur les tutoriels avec le chargement de fichier externe d'éléments
    > > graphiques.
    >
    > > D-Chargement-de-ressources-externes-Partie-2<http://www.ekameleon.net/blog/index.php?post/2008/12/07/D-Chargement-...>

    Matthieu

    unread,
    Dec 14, 2008, 11:31:48 AM12/14/08
    to VEGAS - ECMASCript & ActionScript OpenSource framework
    Désolais.
    J'envoie mes messages avec Thunderbird, j'étais persuadé qu'un nouveau
    post était créé à chaque question.

    Désormais j'ajouterais un nouveau message avec l'interface google
    group.

    Sinon, avec tes réponses et celles des membres du forum, je m'en sors
    dans l'apprentissage de vegas. Merci beaucoup.
    Si cela intéresse du monde, je pourrais poster le code source AS3
    complet qui me sers à m'entrainer avec les fonctionnalités de vegas.

    Je crée les nouveaux posts pour les autres questions.

    Matthieu

    Matthieu

    unread,
    Dec 14, 2008, 11:32:35 AM12/14/08
    to VEGAS - ECMASCript & ActionScript OpenSource framework

    ekameleon

    unread,
    Dec 14, 2008, 11:35:10 AM12/14/08
    to veg...@googlegroups.com
    Hello :)

    si tu regardes bien sur le google groups tu verras que cela devient super compliqué de suivre la conversation ;)

    Merci pour les autres posts ;)

    EKA+ :)

    Matthieu

    unread,
    Dec 14, 2008, 11:36:49 AM12/14/08
    to VEGAS - ECMASCript & ActionScript OpenSource framework
    Une autre question par rapport aux librairies partagées et la fabrique
    IOC.

    J'ai modifié mon fichier eden pour ajouter les ressources graphiques
    en assembly.

    imports =
    [
    { resource : "library/dll.swf" , type:"assembly" }
    ] ;

    J'ai également déclaré des objets graphiques de la fabrique.
    {
    id : "my_logo" ,
    type : "ScrollBar" ,
    singleton : true ,
    lazyInit : true ,
    properties :
    [
    { name : "x" , value : 140 } ,
    { name : "y" , value : 50 }
    ]
    }
    ,
    {
    id : "Square2" ,
    type : "Square2" ,
    singleton : true ,
    lazyInit : true ,
    properties :
    [
    { name : "x" , value : 200 } ,
    { name : "y" , value : 50 }
    ]
    }
    ,
    {
    id : "my_tooltip" ,
    type : "ToolTip" ,
    singleton : true ,
    lazyInit : true ,
    properties :
    [
    { name : "x" , value : 170 } ,
    { name : "y" , value : 160 }
    ]
    }

    Et dans le code source de la classe Aplicaiton, je les affiche à
    l'écran :
    var oBtn : MovieClip = factory.getObject("Square2") ;
    addChild( oBtn );

    Ma question est : est-on obligé d'initialiser chaque éléments
    graphique de la fabrique dans le fichier eden ?
    Ou est ce possible de les déclarer directement dans le code source ?

    L'équivalent de ça : {
    id : "my_tooltip" ,
    type : "ToolTip" ,
    singleton : true ,
    lazyInit : true ,
    properties :
    [
    { name : "x" , value : 170 } ,
    { name : "y" , value : 160 }

    eKameleon

    unread,
    Dec 14, 2008, 11:41:00 AM12/14/08
    to VEGAS - ECMASCript & ActionScript OpenSource framework
    ??? Tu as sûrement un problème... mais faut trouver une solution ;)

    Tu passes bien par le Google Groups directement et tu crée bien un
    "nouveau message" ?

    EKA+ :)
    Reply all
    Reply to author
    Forward
    0 new messages