RE: [flexcoders] Re: Silly question? : Why do I have to create objects inside class functions?

2007-02-15 Thread Gordon Smith
 You cannot have *statements* outside of class methods.
 
Actually, you can, but it's unusual to do this. Loose statements in a
class are executed at class initialization time, before any instances
have been created. If pageRO and pageService were statics (i.e.,
properties of the class itself), it would make sense. But since they are
instance properties, it won't even compile.
 
- Gordon



From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
Behalf Of Troy Gilbert
Sent: Wednesday, February 14, 2007 9:51 PM
To: flexcoders@yahoogroups.com
Subject: Re: [flexcoders] Re: Silly question? : Why do I have to create
objects inside class functions?



Not exactly right...

The problem is that what you're wanting to do is execute an assignment
statement. You cannot have *statements* outside of class methods.

What you can do is have *initializers* as part of *declarations*. So,
you can do this: 

public class MyClass
{
public var myVar:String = some text;
public var myOtherVar:Singleton = Singleton.getInstance();
}

You have to make the assignment at the point where you declare the
variable (so it actually becomes what is called an initializer). 

The initialization statement will be executed as part of the
constructor's prologue (immediately before you constructor code is
called), i.e. when you call new MyClass();.

Troy.



On 2/14/07, helihobby [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
 wrote: 

I re-read your question and the answer is no you can not.
The reason is becuase Flex is event driven.

What you can do is add to the Application tag flag of:

creationComplete=init()

and use inside the class:

public function init():void{

pageRO = new RemoteObject();
pageService = PageService.getInstance();

}



--- In flexcoders@yahoogroups.com
mailto:flexcoders%40yahoogroups.com , rumpleminzeflickr 
[EMAIL PROTECTED] wrote:

 They are declared in the format
 
 public var pageService:PageService;
 
 
 --- In flexcoders@yahoogroups.com
mailto:flexcoders%40yahoogroups.com , helihobby helihobby@ wrote:
 
  I think you forgot to add var unless you define a private
var at 
the 
  top.
  
  
  --- In flexcoders@yahoogroups.com
mailto:flexcoders%40yahoogroups.com , rumpleminzeflickr 
  rumpleminze@ wrote:
  
   Hi,
   
   This maybe a really dumb question, but why I can't I
create new
   objects or even assign a null object a value in the class 
itself?
   
   It works fine if I do it in a function. Just trying to 
understand 
  i'm
   sure there is a good reason.
   
   Many thanks,
   
   
   
   
   public class MyClass
   {
   
   // doesn't work here
   pageRO = new RemoteObject();
   pageService = PageService.getInstance();
   
   
   public function Foo():void{
   
   // works here
   pageRO = new RemoteObject();
   pageService = PageService.getInstance();
   
   }
   }
  
 









 


[flexcoders] Re: Silly question? : Why do I have to create objects inside class functions?

2007-02-15 Thread rumpleminzeflickr
Thank you all this makes sense now :)

This forum has helped me a lot thank you again!

--- In flexcoders@yahoogroups.com, Gordon Smith [EMAIL PROTECTED] wrote:

  You cannot have *statements* outside of class methods.
  
 Actually, you can, but it's unusual to do this. Loose statements in a
 class are executed at class initialization time, before any instances
 have been created. If pageRO and pageService were statics (i.e.,
 properties of the class itself), it would make sense. But since they are
 instance properties, it won't even compile.
  
 - Gordon
 
 
 
 From: flexcoders@yahoogroups.com [mailto:[EMAIL PROTECTED] On
 Behalf Of Troy Gilbert
 Sent: Wednesday, February 14, 2007 9:51 PM
 To: flexcoders@yahoogroups.com
 Subject: Re: [flexcoders] Re: Silly question? : Why do I have to create
 objects inside class functions?
 
 
 
 Not exactly right...
 
 The problem is that what you're wanting to do is execute an assignment
 statement. You cannot have *statements* outside of class methods.
 
 What you can do is have *initializers* as part of *declarations*. So,
 you can do this: 
 
 public class MyClass
 {
 public var myVar:String = some text;
 public var myOtherVar:Singleton = Singleton.getInstance();
 }
 
 You have to make the assignment at the point where you declare the
 variable (so it actually becomes what is called an initializer). 
 
 The initialization statement will be executed as part of the
 constructor's prologue (immediately before you constructor code is
 called), i.e. when you call new MyClass();.
 
 Troy.
 
 
 
 On 2/14/07, helihobby [EMAIL PROTECTED] mailto:[EMAIL PROTECTED]
  wrote: 
 
   I re-read your question and the answer is no you can not.
   The reason is becuase Flex is event driven.
   
   What you can do is add to the Application tag flag of:
   
   creationComplete=init()
   
   and use inside the class:
   
   public function init():void{
   
   pageRO = new RemoteObject();
   pageService = PageService.getInstance();
   
   }
   
   
 
   --- In flexcoders@yahoogroups.com
 mailto:flexcoders%40yahoogroups.com , rumpleminzeflickr 
   rumpleminze@ wrote:
   
They are declared in the format

public var pageService:PageService;


--- In flexcoders@yahoogroups.com
 mailto:flexcoders%40yahoogroups.com , helihobby helihobby@ wrote:

 I think you forgot to add var unless you define a private
 var at 
   the 
 top.
 
 
 --- In flexcoders@yahoogroups.com
 mailto:flexcoders%40yahoogroups.com , rumpleminzeflickr 
 rumpleminze@ wrote:
 
  Hi,
  
  This maybe a really dumb question, but why I can't I
 create new
  objects or even assign a null object a value in the class 
   itself?
  
  It works fine if I do it in a function. Just trying to 
   understand 
 i'm
  sure there is a good reason.
  
  Many thanks,
  
  
  
  
  public class MyClass
  {
  
  // doesn't work here
  pageRO = new RemoteObject();
  pageService = PageService.getInstance();
  
  
  public function Foo():void{
  
  // works here
  pageRO = new RemoteObject();
  pageService = PageService.getInstance();
  
  }
  }
 

   





[flexcoders] Re: Silly question? : Why do I have to create objects inside class functions?

2007-02-14 Thread helihobby
I think you forgot to add var unless you define a private var at the 
top.


--- In flexcoders@yahoogroups.com, rumpleminzeflickr 
[EMAIL PROTECTED] wrote:

 Hi,
 
 This maybe a really dumb question, but why I can't I create new
 objects or even assign a null object a value in the class itself?
 
 It works fine if I do it in a function. Just trying to understand 
i'm
 sure there is a good reason.
 
 Many thanks,
 
 
 
 
 public class MyClass
 {
 
// doesn't work here
pageRO = new RemoteObject();
pageService = PageService.getInstance();
 
 
 public function Foo():void{
   
// works here
pageRO = new RemoteObject();
pageService = PageService.getInstance();
 
 }
 }





[flexcoders] Re: Silly question? : Why do I have to create objects inside class functions?

2007-02-14 Thread rumpleminzeflickr
They are declared in the format

public var pageService:PageService;


--- In flexcoders@yahoogroups.com, helihobby [EMAIL PROTECTED] wrote:

 I think you forgot to add var unless you define a private var at the 
 top.
 
 
 --- In flexcoders@yahoogroups.com, rumpleminzeflickr 
 rumpleminze@ wrote:
 
  Hi,
  
  This maybe a really dumb question, but why I can't I create new
  objects or even assign a null object a value in the class itself?
  
  It works fine if I do it in a function. Just trying to understand 
 i'm
  sure there is a good reason.
  
  Many thanks,
  
  
  
  
  public class MyClass
  {
  
 // doesn't work here
 pageRO = new RemoteObject();
 pageService = PageService.getInstance();
  
  
  public function Foo():void{

 // works here
 pageRO = new RemoteObject();
 pageService = PageService.getInstance();
  
  }
  }
 





[flexcoders] Re: Silly question? : Why do I have to create objects inside class functions?

2007-02-14 Thread rumpleminzeflickr
They are declared in the format

 public var pageService:PageService;


--- In flexcoders@yahoogroups.com, helihobby [EMAIL PROTECTED] wrote:

 I think you forgot to add var unless you define a private var at the 
 top.
 
 
 --- In flexcoders@yahoogroups.com, rumpleminzeflickr 
 rumpleminze@ wrote:
 
  Hi,
  
  This maybe a really dumb question, but why I can't I create new
  objects or even assign a null object a value in the class itself?
  
  It works fine if I do it in a function. Just trying to understand 
 i'm
  sure there is a good reason.
  
  Many thanks,
  
  
  
  
  public class MyClass
  {
  
 // doesn't work here
 pageRO = new RemoteObject();
 pageService = PageService.getInstance();
  
  
  public function Foo():void{

 // works here
 pageRO = new RemoteObject();
 pageService = PageService.getInstance();
  
  }
  }
 





[flexcoders] Re: Silly question? : Why do I have to create objects inside class functions?

2007-02-14 Thread helihobby
I re-read your question and the answer is no you can not.
The reason is becuase Flex is event driven.

What you can do is add to the Application tag flag of:

creationComplete=init()

and use inside the class:

public function init():void{
 
pageRO = new RemoteObject();
pageService = PageService.getInstance();
 
}


--- In flexcoders@yahoogroups.com, rumpleminzeflickr 
[EMAIL PROTECTED] wrote:

 They are declared in the format
 
 public var pageService:PageService;
 
 
 --- In flexcoders@yahoogroups.com, helihobby helihobby@ wrote:
 
  I think you forgot to add var unless you define a private var at 
the 
  top.
  
  
  --- In flexcoders@yahoogroups.com, rumpleminzeflickr 
  rumpleminze@ wrote:
  
   Hi,
   
   This maybe a really dumb question, but why I can't I create new
   objects or even assign a null object a value in the class 
itself?
   
   It works fine if I do it in a function. Just trying to 
understand 
  i'm
   sure there is a good reason.
   
   Many thanks,
   
   
   
   
   public class MyClass
   {
   
  // doesn't work here
  pageRO = new RemoteObject();
  pageService = PageService.getInstance();
   
   
   public function Foo():void{
 
  // works here
  pageRO = new RemoteObject();
  pageService = PageService.getInstance();
   
   }
   }
  
 





Re: [flexcoders] Re: Silly question? : Why do I have to create objects inside class functions?

2007-02-14 Thread Troy Gilbert

Not exactly right...

The problem is that what you're wanting to do is execute an assignment
statement. You cannot have *statements* outside of class methods.

What you can do is have *initializers* as part of *declarations*. So, you
can do this:

public class MyClass
{
   public var myVar:String = some text;
   public var myOtherVar:Singleton = Singleton.getInstance();
}

You have to make the assignment at the point where you declare the variable
(so it actually becomes what is called an initializer).

The initialization statement will be executed as part of the constructor's
prologue (immediately before you constructor code is called), i.e. when you
call new MyClass();.

Troy.


On 2/14/07, helihobby [EMAIL PROTECTED] wrote:


  I re-read your question and the answer is no you can not.
The reason is becuase Flex is event driven.

What you can do is add to the Application tag flag of:

creationComplete=init()

and use inside the class:

public function init():void{

pageRO = new RemoteObject();
pageService = PageService.getInstance();

}

--- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com,
rumpleminzeflickr
[EMAIL PROTECTED] wrote:

 They are declared in the format

 public var pageService:PageService;


 --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com,
helihobby helihobby@ wrote:
 
  I think you forgot to add var unless you define a private var at
the
  top.
 
 
  --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com,
rumpleminzeflickr
  rumpleminze@ wrote:
  
   Hi,
  
   This maybe a really dumb question, but why I can't I create new
   objects or even assign a null object a value in the class
itself?
  
   It works fine if I do it in a function. Just trying to
understand
  i'm
   sure there is a good reason.
  
   Many thanks,
  
  
  
  
   public class MyClass
   {
  
   // doesn't work here
   pageRO = new RemoteObject();
   pageService = PageService.getInstance();
  
  
   public function Foo():void{
  
   // works here
   pageRO = new RemoteObject();
   pageService = PageService.getInstance();
  
   }
   }