Re: [Flashcoders] Q: Including class at compile w/o explicitly instantiating it
Steven Sacks wrote: If you do not do anything with an imported class, Flash will not compile it. Or, to take it a step further, make a class named ClassRegistry (or some such), which defines but does not instantiate private static instances of every class you want to load dynamically. Then just define one instance of that registry in each class that will do dynamic instantiation. class ColorRegistry { // all extend Color private static var purple:Purple; private static var blue:Blue; private static var green:Green; } class ColorLoader { private var registry:ColorRegistry; public function loadColor(className:String):Color { ClassLoader.getInstance(className); } } Every class which has an instance defined in ColorRegistry will be available for instantiation. It's a bit of a hassle when you're accustomed to stuff like Java's Class.forName(className) method, but it could be worse. ___ 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
Re: [Flashcoders] Q: Including class at compile w/o explicitly instantiating it
If you do not do anything with an imported class, Flash will not compile it. One direct solution is to make a static boolean var in the class and access it once and it will force the class to compile. var temp:Boolean = SomeClass.staticBoolean; ___ 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
RE: [Flashcoders] Q: Including class at compile w/o explicitly instantiating it
Hey Rick, no need to create an instance, but do create a variable of that type, so the compiler knows to include that class in the package. var ssc:SomeSweetClass; === Or simply cast to it in your call classRef = getDefinitionByName("com.sweet.SomeSweetClass") as Class; var mySweetness:SomeSweetClass = SomeSweetClass(new classRef()); == Alternatively you can use compiler directives that tell flex builder to package that class into the build, but that's annoying ;) GL Seth -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Steve Mathews Sent: Friday, August 10, 2007 2:37 PM To: [EMAIL PROTECTED]; flashcoders@chattyfig.figleaf.com Subject: Re: [Flashcoders] Q: Including class at compile w/o explicitly instantiating it Try just doing: var ssc:SomeSweetClass; On 8/10/07, Rick Terrill <[EMAIL PROTECTED]> wrote: > Hi everyone, it's my first time posting to the board. > > I'm trying to figure something out, or if it's even possible. I would like > to dynamically instantiate a class (via getDefinitionByName) but without > explicitly instantiating the object prior in the class. > > An example (this is what I would like to be able to do): > > package > { >import com.sweet.*; >import flash.utils.getDefinitionByName; > >public class Foo >{ >public function Foo() >{ > classRef = getDefinitionByName("com.sweet.SomeSweetClass") as > Class; > var mySweetness:Object = new classRef(); >} > } > } > > I figured that the import would take care of it, but it doesn't. I have to > do at least one 'var ssc:SomeSweetClass = new SomeSweetClass();' and then it > will work. If not, then I get a reference error like: > ReferenceError: Error #1065: Variable SomeSweetClass is not defined. > > Is there any way to do this with Run-Time libraries, or some directive or > metadata or something? Or is there something really obvious that I'm > missing? > > t.i.a! > > -- > Rick Terrill > - www.rickterrill.com > - www.linkedin.com/in/rickterrill > ___ > 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
Re: [Flashcoders] Q: Including class at compile w/o explicitly instantiating it
Try just doing: var ssc:SomeSweetClass; On 8/10/07, Rick Terrill <[EMAIL PROTECTED]> wrote: > Hi everyone, it's my first time posting to the board. > > I'm trying to figure something out, or if it's even possible. I would like > to dynamically instantiate a class (via getDefinitionByName) but without > explicitly instantiating the object prior in the class. > > An example (this is what I would like to be able to do): > > package > { >import com.sweet.*; >import flash.utils.getDefinitionByName; > >public class Foo >{ >public function Foo() >{ > classRef = getDefinitionByName("com.sweet.SomeSweetClass") as > Class; > var mySweetness:Object = new classRef(); >} > } > } > > I figured that the import would take care of it, but it doesn't. I have to > do at least one 'var ssc:SomeSweetClass = new SomeSweetClass();' and then it > will work. If not, then I get a reference error like: > ReferenceError: Error #1065: Variable SomeSweetClass is not defined. > > Is there any way to do this with Run-Time libraries, or some directive or > metadata or something? Or is there something really obvious that I'm > missing? > > t.i.a! > > -- > Rick Terrill > - www.rickterrill.com > - www.linkedin.com/in/rickterrill > ___ > 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