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
-~----------~----~----~----~------~----~------~--~---