Hello :)
au moins il y a une solution. Mais c'est clair que lorsque l'on code depuis
un petit moment un framework et qu'à la fin on cherche à créer un swc vaut
mieux savoir ce genre de choses dès le début !

Merci pour l'info :)

EKA+ :)

Le 10 novembre 2008 05:11, zwetan <[EMAIL PROTECTED]> a écrit :

>
>
> alors petit update apres confirmation des Adobe engineer (si si :p)
>
>
> si vous déclarez une function au niveau du package comme ca
> ----
> package something.to.test
> {
>
>   public function hello():void
>   {
>       trace( "hello world" );
>   }
>
> }
> ----
>
> votre SWC ne marchera pas dans Flash CS3, point ligne
> but de Flash CS3
>
> mais il y a un workaround :p
>
> si vous déclarez la function comme ca:
> ----
> package something.to.test
> {
>
>   public var hello:Function = function():void
>   {
>       trace( "hello world" );
>   }
>
> }
> ----
>
> là ca passe
>
> le seul problem c'est de déclarer direct une function (public var
> function)
> mais le reste:
> var (public var test), const (public const test), ca marche
>
>
> alors au final pour publier un SWC pure AS3
> totalement compatible Flash CS3 et Flex
> que l'on compile avec compc
> il faut faire ca
>
> test/MyLibrary.as
> ----
> package test
> {
>    import flash.display.Sprite;
>
>    /**
>     * The basic framework Library to be included in the SWC.
>     * <p><b>Note :</b> This class is not a component, it just
>     * a shim that allow to declare the SWC manifest and associate an
> icon file.</p>
>     */
>    [IconFile("icon.png")]
>    public class MyLibrary extends Sprite
>    {
>        public function MyLibrary()
>        {
>            super();
>        }
>
>    }
> }
> ----
>
>
> manifest.xml
> -----
> <?xml version="1.0" encoding="utf-8"?>
>
> <componentPackage>
>    <component id="mylibrary" class="test.MyLibrary" />
> </componentPackage>
> -----
>
> build.xml
> -----
>    <target name="library_component" description="build the Library
> SWC component">
>        <echo message="building library component" level="verbose" />
>        <!--
>            iterate trough the src and generate the list of classes to
> insert in the component
>            this way we are assured that all classes without exception
> will be included
>            in the bytecode and no need to edit by hand a "library"
> class.
>        -->
>        <fileset id="sources" dir="${release.tmp}">
>            <include name="**/*.as"/>
>        </fileset>
>        <pathconvert property="classes" pathsep=" " refid="sources">
>            <chainedmapper>
>                <globmapper from="${basedir}/build/tmp/*" to="*"/>
>                <mapper type="package" from="*.as" to="*"/>
>            </chainedmapper>
>        </pathconvert>
>        <echo message="classes is set to = ${classes}"
> level="verbose" />
>
>        <!--
>            generate the Library SWC component
>            this SWC is compatible Flash and Flex
>         -->
>        <compc
>            output="${release.dir}/lib/${project.swc}"
>            include-classes="${classes}"
>            target-player="9.0.45"
>        >
>            <namespace uri="${project.namespace}" manifest="$
> {project.manifest}" />
>            <include-namespaces uri="${project.namespace}" />
>            <strict>true</strict>
>            <optimize>true</optimize>
>            <warnings>true</warnings>
>            <verbose-stacktraces>false</verbose-stacktraces>
>            <compute-digest>false</compute-digest>
>            <source-path path-element="${release.tmp}" />
>            <external-library-path dir="${flex.libs}/player"
> includes="playerglobal.swc" />
>            <external-library-path dir="${flex.libs}"
> includes="flex.swc" />
>            <metadata date="${DATE}" title="${project.name}">
>                <creator name="Pim" />
>                <creator name="Pam" />
>                <contributor name="Poom" />
>            </metadata>
>        </compc>
>
>    </target>
> -----
>
>
> explications:
>
> Flash CS3 ne verra pas de components si on a pas au moins une class
> qui herite de Sprite ou MovieClip
> oui pour Flash un component ne peut etre que visuel
>
> c'est donc pour ca que l'on doit déclarer un manifest.xml avec un
> namespace que l'on passe a compc
>
> ce SWC au final sera compatible Flash CS3 et Flex
> mais attention ce ne sera pas un vrai component visuel,
> mais juste une librairie
>
> dans un project Flex (mxml)
> juste un dragNdrop dans /libs
>
> dans un fichier *.fla
> juste un dragNdrop des components vers la library
>
> oui vous pouvez aussi faire un dragNdrop du component sur la timeline
> mais vous aurez un beau rectangle vide qui une fois compilé ne crée
> aucune instance
>
> (pour avoir une instance sur la timeline et pouvoir configurer le
> component visuel
> il faut creer tout ca dans Flash CS3 et faire "exporter SWC" a la main
> grrrr)
>
> c'est pas encore ca mais au moins ca permet de distribuer
> des components code-only dont le bytecode sera utilisé soit par Flex
> ou Flash
>
> pour le cas de Flash CS3, c'est qd meme plus simple pour nous dev
> de generer un SWC que passer par un *.xmi pour generer un *.mxp et
> ajouter
> le code source dans les paths de Flash CS3
>
> zwetan
>
>
>
>
>
>
>
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "FCNG" de 
Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [EMAIL PROTECTED]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/FCNG?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à