Although you declare test as a function it is not used as one.  When you 
use the get and set syntax the function is treated like a property.

mattjshannon wrote:
> Hi, I'm new to flex and actionscript - having a java background.
>
> I keep getting a 1195 compiler error when trying to invoke what i 
> believe is a public non-static method from a singleton class instance.
>
> Here is a cut-down version of the code that demonstrates the problem, 
> along with accompanying error ...  (Flex 2.0.1)
>
> Error:
> 1195: Attempted access of inaccessible method name through a 
> reference with static type test:ATest.
>
> Invoker.mxml :-
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"; 
> layout="absolute" creationComplete="onCreationComplete()">
>     <mx:Script>
>         <![CDATA[
>         import test.ATest;
>
>         private function onCreationComplete() : void
>         {
>           var tst : ATest = ATest.getInstance();
>           tst.name("XXX");   // << this call fails
>           // tst._name="XXX"; // << this call works
>         }
>         ]]>
>     </mx:Script>
>     <mx:Label text="{tst.name}"/>
> </mx:Application>
>
>
>
> ATest.as :-
>
> // ActionScript file
> package test
> {
>   public class ATest
>   {
>     private static var instance : ATest;
>     
>     public function ATest() 
>     {   
>       if (instance != null)
>       {
>         throw new Error("Singleton Exception");
>       }
>       instance = this;
>     }
>        
>     public static function getInstance() : ATest 
>     {
>       if (instance == null)
>       {
>         instance = new ATest();
>       }
>       return instance;
>     }
>      
>     public function set name(__name : String) : void
>     {
>       _name = __name;
>
>     }
>
>     public function get name() : String
>     {
>       return _name;
>     }
>
>     public var _name : String;
>   }
> }
>
> Is there something tricky going on with these set/get methods? 
>
> thanks
>
> Matt.
>
>
>   

Reply via email to