Ok, that code all looks good, but I have a couple of questions. In initUI()
function, what do you get if you also put in:

trace(root);

I only ask, because it looks like the brand.swf is loading in correctly.
What I'm curious about is, what's going on with the 'root' mc? I notice that
in your main method, you're sending in the rootMC movieclip. Can I see what
the call to that looks like?

I don't think you need to concern yourself with runtime sharing at this
stage, really.

Ok, try what Martin said ;-)

Francis

On 1/22/07, Andy Herrman < [EMAIL PROTECTED]> wrote:

That's actually exactly what I'm trying, yet it doesn't seem to be
working.  Here's my code:

------

import mx.utils.Delegate;

class BrandTest {

  private var root:MovieClip;
  private var uiResources:MovieClip = null;;

  public static function main(rootMC:MovieClip):Void {
    new BrandTest(rootMC);
  }

  function BrandTest(rootMC:MovieClip) {
    this.root = rootMC;
    loadUIResources("brand.swf");
  }

  private function loadUIResources(path:String):Void {
    trace("Loading " + path);
    if(uiResources != null) {
      uiResources.removeMovieClip();
    }
    root.createEmptyMovieClip("uiResources", root.getNextHighestDepth());
    uiResources = root['uiResources'];

    var uiLoader:MovieClipLoader = new MovieClipLoader();

    var loadListener:Object = new Object();
    loadListener.onLoadInit = Delegate.create(this, function
(oEvent:Object) { this.initUI(); });
    loadListener.onLoadProgress = Delegate.create(this, function
(target:Object, loaded:Number, total:Number):Void { trace(loaded + "/"
+ total); });

    uiLoader.addListener(loadListener);
    uiLoader.loadClip (path, uiResources);
  }

  private function initUI():Void {
    trace("Initing UI");
    var img:MovieClip = root.attachMovie("asImage", "asImageMC",
root.getNextHighestDepth ());
    trace(img);
  }
}

------

I get the following output when I run:

Loading brand.swf
8860/8860
Initing UI
undefined

attachMovie doesn't seem to be working.  I have the movie clip in
Brand.swf exported as 'asImage' with 'Export for ActionScript" and
"Export in first frame" selected.  Is there anything else I might be
missing?

There's an "Export for runtime sharing" option that's unchecked, but
if I select it it wants a URL and I don't know what to put there.

   -Andy

On 1/22/07, Francis Chary <[EMAIL PROTECTED]> wrote:
> Let me have a crack at this one, Andy.. ;)
>
> Basically, linkages are just a way of telling the code how to identify a
> particular item in the library. When you right-click one of your buttons
in
> the Brand.fla library and click 'Linkage...', you'll see the Linkage
dialog
> box. Now, click on the checkbox marked: 'Export for Actionscript'.
>
> Flash will automatically fill in the linkage Id for you, it usually just
> takes the name of your swf. (eg. "fancy_button"). You can change this to

> whatever you want, just try and make sure that each movie clip has a
> different id from the others. Otherwise you could create problems. Now,
go
> ahead and publish that movie to create Brand.swf.
>
> So now you have a movieclip with a linkage id inside your Brand.swf. So
how
> do you get it to appear in the Main.swf? Firstly, you'll have to load
the
> Brand.swf into the Main.swf. This is most easily done with the loadMovie

> function. If you want to be fancy, you can use MovieClipLoader instead,
but
> that's another topic.
>
> Once you've loaded Brand.swf into Main.swf, you want to get at the
button,
> or whatever mc you created a linkage id for. Happily, by creating a
linkage
> id, you gave the flash player a name by which to identify the button.
Now,
> the code to attach this to the stage is:
>
> _root.attachMovie("linkageId", "newButtonMCName", 0);
>
> as you may have guessed, the arguments there are as follows:
> "linkageId" == the linkage id that was generated in the Brand.fla file
> "newButtonMCName" == the name you want for your button on the stage
> 0 == the depth of the new button.
>
> This will drop the movieclip onto the stage at coordinates 0, 0.
>
> So that's how you use linkage id. The neat thing is that if you have
say,
> five Brand.fla files, with different art assets, you can give the
elements
> in each one the same linkage id, then compile Main.fla once for each
> Brand.swf you've got. That way, you can 'skin' your Main.swf.
>
> I hope this helps, and I hope someone will correct me if I've made any
silly
> mistakes!
>
> - Francis
>
> On 1/22/07, Andy Herrman < [EMAIL PROTECTED]> wrote:
> >
> > Unfortunately I'm stuck using the Flash IDE only (no MTASC). :(
> >
> > I don't really understand how linkages work.  Is there a way to do
> > something similar using just the Flash IDE?  I have a feeling that's
> > the way I'm going to have to do it.
> >
> >    -Andy
> >
> > On 1/22/07, Trevor Burton < [EMAIL PROTECTED]> wrote:
> > > ok, i work on a setup that sounds like it's what you're aiming
for...
> > i've
> > > recently started working with MTASC and swfmill in order to get file

> > sizes
> > > down to a minimum and streamline the build process - what i do at
the
> > moment
> > > is this (simplified)
> > >
> > > 1 - all code is compiled into a library using mtasc
> > > 2 - all assets are compiled into 'skin' swf using the flash ide
> > >
> > > 3 - for each skin swf i use swfmill to create a linkage between an
empty
> > > movieclip in the skin's library and a base class for the UI
component
> > i'll
> > > want to use. This means that when the skin is compiled in the flash
ide
> > it
> > > doesn't automatically drag in all the other classes that are
referenced
> > and
> > > i don't have to create exclude.xml files.
> > >
> > > 4 - i have a 'core' class which loads all the necessary library and
skin
> > > files and instantiates things where necessary to get the app going.
> > >
> > > This is probably a little bit over the top for what you're
describing
> > above
> > > but for a large-scale application such as this it works very well
and
> > > prevents unnecessary duplicate importing of classes.
> > >
> > > I went down the same path trying to get attachMovie to work using
all
> > sorts
> > > of approaches and had no luck - this seems to me to be the cleanest
> > approach
> > > for what i need.
> > >
> > > t
> > >
> > > On 1/22/07, Andy Herrman <[EMAIL PROTECTED]> wrote:
> > > >
> > > > I'm beginning work on a new project that will need to have a
brandable
> > > > UI and I'm looking for suggestions on how to proceed.  I'm pretty
new
> > > > to Flash development, so I don't really know if there's a standard
way
> > > > of doing this.
> > > >
> > > > What I would like to do is have the main application's SWF load a
> > > > second SWF which contains all of the UI components (images,
> > > > animations, buttons, etc).  This way I could allow branding by
just
> > > > providing an SWF with different UI components.  However, I can't
> > > > figure out if there's a way to access the library of one SWF in
> > > > another SWF.
> > > >
> > > > For example, I have my main.swf and brand.swf.   Main.swf has
nothing
> > > > except some AS code.  Brand.swf has a button in its library called
> > > > "testButton", which is exported for AS use.
> > > >
> > > > What I want to do is create an instance of "testButton" within
> > > > Main.swf, but attachMovie doesn't work (I'm guessing it can't see
> > > > library items from the other SWF).  Is there a way to do
attachMovie
> > > > on clips in another SWF's library?
> > > >
> > > > The other option I've heard about is to have the default
"branding"
> > > > stuff defined in the main.swf, and then you can somehow have an
> > > > external SWF override the ones you want to override.  I'm not sure
I
> > > > like doing this as it require things to be defined in the main
SWF's
> > > > FLA, which I like to keep to a minimum (since the FLA is binary
it's
> > > > hard to manage it in source control for things like merging, so
I'd
> > > > like to have as little in the FLA as possible).
> > > >
> > > > Is there any way to do what I'm trying (use clips in another SWF's
> > > > library), or any other ways to do branding like this?  Thanks!
> > > >
> > > >    -Andy
> > > > _______________________________________________
> > > > Flashcoders@chattyfig.figleaf.com
> > > > To change your subscription options or search the archive:
> > > > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> > > >
> > > > Brought to you by Fig Leaf Software
> > > > Premier Authorized Adobe Consulting and Training
> > > > http://www.figleaf.com
> > > > http://training.figleaf.com
> > > >
> > > _______________________________________________
> > > Flashcoders@chattyfig.figleaf.com
> > > To change your subscription options or search the archive:
> > > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> > >
> > > Brought to you by Fig Leaf Software
> > > Premier Authorized Adobe Consulting and Training
> > > http://www.figleaf.com
> > > http://training.figleaf.com
> > >
> > _______________________________________________
> > Flashcoders@chattyfig.figleaf.com
> > To change your subscription options or search the archive:
> > http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >
> > Brought to you by Fig Leaf Software
> > Premier Authorized Adobe Consulting and Training
> > http://www.figleaf.com
> > http://training.figleaf.com
> >
> _______________________________________________
> Flashcoders@chattyfig.figleaf.com
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>
_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

_______________________________________________
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

Reply via email to