Going back to my project the ["functionName"] does not work still. the class reference points to a class that extends a base class. The static function is in the base class. Is that why it doesn't work?
Thanks On Thu, May 15, 2008 at 8:24 AM, Giles Roadnight <[EMAIL PROTECTED]> wrote: > Thanks Gordon. I got your code to run fine but when I try c.Roadnight() > outside the class I still get a compiler error. c["Roadnight works"](); > > I have attached a zip of the project. The compiler error line is commented > out. > > > > > On Wed, May 14, 2008 at 6:56 PM, Gordon Smith <[EMAIL PROTECTED]> wrote: > >> Alex meant c.Roadnight() or c["Roadnight"]() if you want to call the >> static function. Without the () you get a reference to the function, rather >> than the result produced by calling the function. >> >> >> >> Here is a complete and tested ActionScript app which illustrates four ways >> to call a static function on a Class object. It outputs "Roadnight" four >> times. >> >> >> >> package >> >> { >> >> >> >> import flash.display.Sprite; >> >> >> >> public class Giles extends Sprite >> >> { >> >> public function Giles() >> >> { >> >> super(); >> >> >> >> var c:Class = Giles; >> >> c.Roadnight(); >> >> c["Roadnight"](); >> >> >> >> var f:Function; >> >> f = c.Roadnight; >> >> f(); >> >> f = c["Roadnight"]; >> >> f(); >> >> } >> >> >> >> public static function Roadnight():void >> >> { >> >> trace("Roadnight"); >> >> } >> >> } >> >> >> >> } >> >> >> >> Gordon Smith >> >> Adobe Flex SDK Team >> >> >> ------------------------------ >> >> *From:* flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] *On >> Behalf Of *Giles Roadnight >> *Sent:* Wednesday, May 14, 2008 1:03 AM >> *To:* flexcoders@yahoogroups.com >> *Subject:* Re: [flexcoders] Re: Calling static function on Class instance >> >> >> >> Many thanks for the replies, describeType works great. >> >> I can't get c.Roadnight to work though and for now am having to create an >> instance of the class to call the function (which I had to make non-static). >> >> var selectedTemplateClass:Class = initEvent.frameType; >> var xml:XML = selectedTemplateClass.getBlankXML(); >> >> gives a compiler error. >> >> var selectedTemplateClass:Class = initEvent.frameType; >> var xml:XML = selectedTemplateClass.getBlankXML; >> >> does not give a compiler error but xml remains null >> >> I also tried >> >> var selectedTemplateClass:Class = initEvent.frameType; >> var blankXMLFunction:Function = >> selectedTemplateClass.getBlankXML; >> var xml:XML = blankXMLFunction(); >> >> but blankXMLFunction remains null. >> >> At the moment I have it working with a fresh instance of the class but I'd >> rather not do it this way if possible. >> >> Thanks >> >> Giles >> >> On Tue, May 13, 2008 at 6:32 PM, Alex Harui <[EMAIL PROTECTED]> wrote: >> >> You mean you have: >> >> >> >> pulbic class Giles >> >> { >> >> public static function Roadnight():void >> >> { >> >> } >> >> } >> >> >> >> And >> >> >> >> var c:Class = Giles; >> >> >> >> >> >> If so it is just just be c.Roadnight or c["RoadNight"] >> >> >> ------------------------------ >> >> *From:* flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] *On >> Behalf Of *Giles Roadnight >> *Sent:* Tuesday, May 13, 2008 8:44 AM >> *To:* flexcoders@yahoogroups.com >> *Subject:* [flexcoders] Re: Calling static function on Class instance >> >> >> >> Along the same lines - how do I get the class name from a Class object. If >> I do toString() I get [class HeaderImage1]. Do I just have to extract the >> string from that? >> >> Thanks again >> >> Giles >> >> On Tue, May 13, 2008 at 4:21 PM, Giles Roadnight <[EMAIL PROTECTED]> >> wrote: >> >> Hi All >> >> I have a class (BaseTemplate) that is extended to become lots of different >> Template classes. >> >> I have a list class that takes an array of Class objects to allow a user >> to select a template (the renderer creates an instance of the class). >> >> When I click an item in the list I want to call a static function on the >> Template. >> >> When I have a Class object is there anyway of calling a static function on >> that class without creating an instance of the class? >> >> Thanks >> >> -- >> Giles Roadnight >> http://giles.roadnight.name >> >> >> >> >> -- >> Giles Roadnight >> http://giles.roadnight.name >> >> >> >> >> -- >> Giles Roadnight >> http://giles.roadnight.name >> >> > > > > -- > Giles Roadnight > http://giles.roadnight.name > -- Giles Roadnight http://giles.roadnight.name