RE: [flexcoders] Re: Silly question? : Why do I have to create objects inside class functions?
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?
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?
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?
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?
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?
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?
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(); } }