[swfmill] Accessing swfmlill library assets (png, mp3) from Flex/as3

Jonas Nyström jonasnys at gmail.com
Thu Nov 5 08:34:54 PST 2009


Thank you, Armenicho!

I'll try this, and blog loudly if I succeed!

Jonas

2009/11/5 armencho at gmail.com <armencho at gmail.com>

> 2009/11/4 Jonas Nyström <jonasnys at gmail.com>:
> > Hello!
> >
> > I would like to replace my flex-compiler library creation with swfmill.
> My
> > problem is that I've not been able to
> > access any of my swfmill library assets. (In my current project i need
> png
> > images and mp3 soundfiles.)
>
> It is possible, although abstractions are quite different. For example
> I use the following xml which is compiled with "swfmill simple
> assets.xml ../lib/assets.swf"
>
> <?xml version="1.0" encoding="utf-8" ?>
> <movie version="10">
>        <frame>
>                <library>
>                        <bitmap id="mypackage.MyImage"
>                                import="assets/gui/images/myimage.png" />
>                        <font id="helvetica-neue-heavy"
>
>  import="assets/fonts/HelveticaNeueLTCom-Hv.ttf" />
>                </library>
>        </frame>
> </movie>
>
> Since Flex does not have a facility to "fuse" two SWFs together, you
> will have to load the swf compiled by swfmill at runtime. However,
> from then it is pretty simple - load it on the fly into the same (or
> different, how you prefer) application domain and get the class
> definition:
>
> var MyImage = flash.utils.getDefinitionByName("mypackage.MyImage");
>
> var img_obj = new MyImage();
>
> You can also try to include a source code along with your app which will:
>
> package mypackage
> {
>     extern class MyImage, extends flash.display.BitmapData
>     {
>     }
> }
>
> If you are loading into another application domain, use
> ApplicationDomain.getDefinition in the same manner.
>
> >
> > This is how I create my Library.swf from a as3 class right now using flex
> > compiler:
> >
> > package {
> >     import flash.display.Sprite;
> >     public class Library extends Sprite    {
> >             [Embed(source="assets/test.png")]
> >             public var TestPng:Class;
> >             [Embed(source="assets/test.mp3")]
> >             public var TestSound:Class;
> >     }
> > }
> >
> > (This library creation is what I want to replace with a swfmill
> solution.)
> > The library is later used in my Flex app in the following way:
> >
> > private var loader:Loader = new Loader();
> >
> > private function onCreationComplete():void {
> >     this.loader.contentLoaderInfo.addEventListener(Event.COMPLETE,
> > onComplete);
> >     this.loader.load(new URLRequest('assets/Library.swf'));
> > }
> >
> > private function onComplete(e:Event):void {
> >     var resourceClass:Class =
> > loader.contentLoaderInfo.applicationDomain.getDefinition("Library") as
> > Class;
> >     var resources:Object = new resourceClass();
> >
> >     // Png bitmap
> >     var symClass:Class=resources['TestPng'] as Class;
> >     var testBitmap:Bitmap = new symClass() as Bitmap;
> >     this.rawChildren.addChild(testBitmap);
> >
> >     // Sound
> >     symClass = resources['TestSound'] as Class;
> >     var testSound:Sound = new symClass() as Sound;
> >     testSound.play(0);
> > }
> >
> > Is it possible to create a swfmill Library.swf that has the same
> structure
> > and can be accessed the same way as my as3 library above? If not, could
> > anyone explain how to create and access images and mp3s in a
> corresponding
> > way?
> >
> > Regards / Jonas
> >
> > _______________________________________________
> > swfmill mailing list
> > swfmill at osflash.org
> > http://osflash.org/mailman/listinfo/swfmill_osflash.org
> >
> >
>
> _______________________________________________
> swfmill mailing list
> swfmill at osflash.org
> http://osflash.org/mailman/listinfo/swfmill_osflash.org
>



-- 
Med vänlig hälsning!

Jonas Nyström
jonasnys at gmail.com
070-670 36 50
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://osflash.org/pipermail/swfmill_osflash.org/attachments/20091105/edb54004/attachment.html>


More information about the swfmill mailing list