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