Re: [Flashcoders] create an object of type defined with a string
If you need an object that already exists to be converted into an instance of the class you can use the XT Prototype class Prototype.makeInstanceof(obj, Array); and using Zimmen's suggestion Prototype.makeInstanceof(obj, _global[tType]); good luck! you'll find the class at http://codext.com/code/9 Tyler On 6/1/06, Zimmen <[EMAIL PROTECTED]> wrote: Yes it is... so you could use function makeObject(tType){ return (new _global[tType]()) } test = makeObject("Array") as well (this is what the findClass method does eventually. :) On 6/1/06, Danny Kodicek <[EMAIL PROTECTED]> wrote: > Thanks, Zimmen and Ian, that's helpful. I'll probably go with Ian's > solution, which seems a bit more robust (I've been caught out before by > clever tricks using eval()...) > > Danny > > - Original Message - > From: "Zimmen" <[EMAIL PROTECTED]> > To: "Flashcoders mailing list" > Sent: Thursday, June 01, 2006 5:33 PM > Subject: Re: [Flashcoders] create an object of type defined with a string > > > > This actually works: > > > > function makeObject(tType){ > > var tVar = eval(tType) > > return (new tVar()) > > } > > test = makeObject("Array") > > test.push("foo") > > test.push("bar") > > trace(test[0]) > > trace(test[1]) > > trace(test.length) > > > > Output: > > > > foo > > bar > > 2 > > > > On 6/1/06, Danny Kodicek <[EMAIL PROTECTED]> wrote: > >> I want to have a function makeObject(tType:String) which returns an > >> object > >> of class tType. So makeObject("Array") should return a new Array object. > >> Any > >> good way to do this? I'm sure it's something simple. > >> > >> And before you ask, yes, there is a reason why I need to do it this > >> way... > >> > >> Danny > >> > >> ___ > >> 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
RE: [Flashcoders] create an object of type defined with a string
If you were using Flex, I think there is a way to do it: let us know if you use Flex. Regards. -Mensaje original- De: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] nombre de Danny Kodicek Enviado el: jueves, 01 de junio de 2006 18:02 Para: Flashcoders mailing list Asunto: [Flashcoders] create an object of type defined with a string I want to have a function makeObject(tType:String) which returns an object of class tType. So makeObject("Array") should return a new Array object. Any good way to do this? I'm sure it's something simple. And before you ask, yes, there is a reason why I need to do it this way... Danny ___ 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] create an object of type defined with a string
Makes total sense! Valuable info for the rare occasion I do a Director/Flash hybrid. Thanks for indulging me. :) -tom -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Danny Kodicek Sent: Thursday, June 01, 2006 2:26 PM To: Flashcoders mailing list Subject: Re: [Flashcoders] create an object of type defined with a string > Danny, > > Out of curiosity, why do you need a function that returns an object of a > type passed as a string? It's a neat idea, but I'm scratching my head as to > where one might apply it. I've been hitting some memory problems when using Director's newObject() function, which creates a new object inside an embedded Swf. Because the object is unnamed, I have no way to destroy it in the Flash movie - it seems to go somewhere in the global space. So instead, I'm making my own tempObject function, which creates a new object in an array pTempObjects in the Flash movie. When I've finished working with it, I run a clearTempObjects() function to flush them out. So I have this function: function tempObject(tName:String) { var tObj:Object = pTempObjects.push(tObj) return tObj } Now Director can call this function, get a new temporary Flash object and work on it, then tell Flash to do something with the object (eg, setting the properties of a TextFormat object before applying it to a field), and then finally clear it out. More detail than I think you wanted, but since you asked :) Danny ___ 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] create an object of type defined with a string
> Danny, > > Out of curiosity, why do you need a function that returns an object of a > type passed as a string? It's a neat idea, but I'm scratching my head as to > where one might apply it. I've been hitting some memory problems when using Director's newObject() function, which creates a new object inside an embedded Swf. Because the object is unnamed, I have no way to destroy it in the Flash movie - it seems to go somewhere in the global space. So instead, I'm making my own tempObject function, which creates a new object in an array pTempObjects in the Flash movie. When I've finished working with it, I run a clearTempObjects() function to flush them out. So I have this function: function tempObject(tName:String) { var tObj:Object = pTempObjects.push(tObj) return tObj } Now Director can call this function, get a new temporary Flash object and work on it, then tell Flash to do something with the object (eg, setting the properties of a TextFormat object before applying it to a field), and then finally clear it out. More detail than I think you wanted, but since you asked :) Danny ___ 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] create an object of type defined with a string
Danny, Out of curiosity, why do you need a function that returns an object of a type passed as a string? It's a neat idea, but I'm scratching my head as to where one might apply it. -tom -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] On Behalf Of Danny Kodicek Sent: Thursday, June 01, 2006 12:51 PM To: Flashcoders mailing list Subject: Re: [Flashcoders] create an object of type defined with a string Thanks, Zimmen and Ian, that's helpful. I'll probably go with Ian's solution, which seems a bit more robust (I've been caught out before by clever tricks using eval()...) Danny - Original Message - From: "Zimmen" <[EMAIL PROTECTED]> To: "Flashcoders mailing list" Sent: Thursday, June 01, 2006 5:33 PM Subject: Re: [Flashcoders] create an object of type defined with a string > This actually works: > > function makeObject(tType){ > var tVar = eval(tType) > return (new tVar()) > } > test = makeObject("Array") > test.push("foo") > test.push("bar") > trace(test[0]) > trace(test[1]) > trace(test.length) > > Output: > > foo > bar > 2 > > On 6/1/06, Danny Kodicek <[EMAIL PROTECTED]> wrote: >> I want to have a function makeObject(tType:String) which returns an >> object >> of class tType. So makeObject("Array") should return a new Array object. >> Any >> good way to do this? I'm sure it's something simple. >> >> And before you ask, yes, there is a reason why I need to do it this >> way... >> >> Danny >> >> ___ >> 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
Re: [Flashcoders] create an object of type defined with a string
Yes it is... so you could use function makeObject(tType){ return (new _global[tType]()) } test = makeObject("Array") as well (this is what the findClass method does eventually. :) On 6/1/06, Danny Kodicek <[EMAIL PROTECTED]> wrote: Thanks, Zimmen and Ian, that's helpful. I'll probably go with Ian's solution, which seems a bit more robust (I've been caught out before by clever tricks using eval()...) Danny - Original Message - From: "Zimmen" <[EMAIL PROTECTED]> To: "Flashcoders mailing list" Sent: Thursday, June 01, 2006 5:33 PM Subject: Re: [Flashcoders] create an object of type defined with a string > This actually works: > > function makeObject(tType){ > var tVar = eval(tType) > return (new tVar()) > } > test = makeObject("Array") > test.push("foo") > test.push("bar") > trace(test[0]) > trace(test[1]) > trace(test.length) > > Output: > > foo > bar > 2 > > On 6/1/06, Danny Kodicek <[EMAIL PROTECTED]> wrote: >> I want to have a function makeObject(tType:String) which returns an >> object >> of class tType. So makeObject("Array") should return a new Array object. >> Any >> good way to do this? I'm sure it's something simple. >> >> And before you ask, yes, there is a reason why I need to do it this >> way... >> >> Danny >> >> ___ >> 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
Re: [Flashcoders] create an object of type defined with a string
just for the record you don't need to use eval: trace(new ["Array"]() instanceof Array) Cheers Nick Danny Kodicek wrote: Thanks, Zimmen and Ian, that's helpful. I'll probably go with Ian's solution, which seems a bit more robust (I've been caught out before by clever tricks using eval()...) Danny ___ 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] create an object of type defined with a string
Thanks, Zimmen and Ian, that's helpful. I'll probably go with Ian's solution, which seems a bit more robust (I've been caught out before by clever tricks using eval()...) Danny - Original Message - From: "Zimmen" <[EMAIL PROTECTED]> To: "Flashcoders mailing list" Sent: Thursday, June 01, 2006 5:33 PM Subject: Re: [Flashcoders] create an object of type defined with a string This actually works: function makeObject(tType){ var tVar = eval(tType) return (new tVar()) } test = makeObject("Array") test.push("foo") test.push("bar") trace(test[0]) trace(test[1]) trace(test.length) Output: foo bar 2 On 6/1/06, Danny Kodicek <[EMAIL PROTECTED]> wrote: I want to have a function makeObject(tType:String) which returns an object of class tType. So makeObject("Array") should return a new Array object. Any good way to do this? I'm sure it's something simple. And before you ask, yes, there is a reason why I need to do it this way... Danny ___ 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] create an object of type defined with a string
This actually works: function makeObject(tType){ var tVar = eval(tType) return (new tVar()) } test = makeObject("Array") test.push("foo") test.push("bar") trace(test[0]) trace(test[1]) trace(test.length) Output: foo bar 2 On 6/1/06, Danny Kodicek <[EMAIL PROTECTED]> wrote: I want to have a function makeObject(tType:String) which returns an object of class tType. So makeObject("Array") should return a new Array object. Any good way to do this? I'm sure it's something simple. And before you ask, yes, there is a reason why I need to do it this way... Danny ___ 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] create an object of type defined with a string
Hi Danny, mx.utils.ClassFinder.findClass("SomeClass") returns the constructor function for a class. e.g. var className:String = 'String'; var cls:Function = mx.utils.ClassFinder.findClass(className); var object:Object = new cls(); Hope that helps, Ian On 6/1/06, Danny Kodicek <[EMAIL PROTECTED]> wrote: I want to have a function makeObject(tType:String) which returns an object of class tType. So makeObject("Array") should return a new Array object. Any good way to do this? I'm sure it's something simple. And before you ask, yes, there is a reason why I need to do it this way... Danny ___ 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] create an object of type defined with a string
I want to have a function makeObject(tType:String) which returns an object of class tType. So makeObject("Array") should return a new Array object. Any good way to do this? I'm sure it's something simple. And before you ask, yes, there is a reason why I need to do it this way... Danny ___ 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