[flexcoders] Re: flash.utils.Proxy -- Unable to compile.
I've ran into this before. I think that you just want to declare your class as dynamic. -Dale --- In flexcoders@yahoogroups.com, Nate Beck n...@... wrote: So this is kind of annoying, I have a proxy Class that I am working with... here is a trimmed down version of it. -- DateTime.as (Trimmed version) -- package net.natebeck.core { import com.flexoop.utilities.dateutils.DaylightSavingTimeUS; import flash.utils.Proxy; import flash.utils.flash_proxy; public class DateTime extends Proxy { // Instance Variables protected var _date:Date; protected var _timezone:Timezone; public function DateTime(... args) { super(); _date = new Date(args[0]); if(args[0] is String) setTimezone(parseTimezone(args[0])); } public function setTimezone(value:Timezone):void { trace(Setting Timezone: +value); _timezone = value; } public function getTimezone():Timezone { trace(Getting Timezone: +_timezone); return _timezone; } public function getTimezoneOffset():Number { return _timezone.offset; } override flash_proxy function callProperty(methodName:*, ... args):* { var res:*; switch (methodName.toString()) { case 'toString': res = foobar; break; default: res = _date[methodName].apply(_date, args); break; } return res; } override flash_proxy function getProperty(name:*):* { trace(getting property: +name); return _date[name]; } override flash_proxy function setProperty(name:*, value:*):void { _date[name] = value; } } } I've written a simple test application to test my DateTime Proxy class while I'm developing. -- TestDateTime.as -- package { import flash.display.Sprite; import net.natebeck.core.DateTime; import net.natebeck.core.Timezone; public class TestDateTime extends Sprite { public function TestDateTime() { var create:Object = Jun 17 12:00:00 GMT-0500 2009; var oldDate:Date = new Date(create); var strDate:DateTime = new DateTime(create); trace(old: +oldDate); trace(new: +strDate); strDate.getTimezone(); strDate.setTimezone(Timezone.PST); strDate.getTimezone(); trace(strDate.toString()); } } } When trying to compile using FlexBuilder I get this error. 1061: Call to a possibly undefined method toString through a reference with static type net.natebeck.core:DateTime. Well that's dumb... the whole reason I'm using the Proxy class is so I don't have to re-write every method within my class. Am I missing something? -- Cheers, Nate http://blog.natebeck.net
Re: [flexcoders] Re: flash.utils.Proxy -- Unable to compile.
Hey Dale, That makes sense... and thanks for your reply. Making the DateTime class dynamic fixed the issue. Weird thing is that without the dynamic keyword sometimes it will compile, and sometimes it won't. Anyways thanks! On Mon, Jan 5, 2009 at 11:40 AM, cadisella beerm...@gmail.com wrote: I've ran into this before. I think that you just want to declare your class as dynamic. -Dale --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com, Nate Beck n...@... wrote: So this is kind of annoying, I have a proxy Class that I am working with... here is a trimmed down version of it. -- DateTime.as (Trimmed version) -- package net.natebeck.core { import com.flexoop.utilities.dateutils.DaylightSavingTimeUS; import flash.utils.Proxy; import flash.utils.flash_proxy; public class DateTime extends Proxy { // Instance Variables protected var _date:Date; protected var _timezone:Timezone; public function DateTime(... args) { super(); _date = new Date(args[0]); if(args[0] is String) setTimezone(parseTimezone(args[0])); } public function setTimezone(value:Timezone):void { trace(Setting Timezone: +value); _timezone = value; } public function getTimezone():Timezone { trace(Getting Timezone: +_timezone); return _timezone; } public function getTimezoneOffset():Number { return _timezone.offset; } override flash_proxy function callProperty(methodName:*, ... args):* { var res:*; switch (methodName.toString()) { case 'toString': res = foobar; break; default: res = _date[methodName].apply(_date, args); break; } return res; } override flash_proxy function getProperty(name:*):* { trace(getting property: +name); return _date[name]; } override flash_proxy function setProperty(name:*, value:*):void { _date[name] = value; } } } I've written a simple test application to test my DateTime Proxy class while I'm developing. -- TestDateTime.as -- package { import flash.display.Sprite; import net.natebeck.core.DateTime; import net.natebeck.core.Timezone; public class TestDateTime extends Sprite { public function TestDateTime() { var create:Object = Jun 17 12:00:00 GMT-0500 2009; var oldDate:Date = new Date(create); var strDate:DateTime = new DateTime(create); trace(old: +oldDate); trace(new: +strDate); strDate.getTimezone(); strDate.setTimezone(Timezone.PST); strDate.getTimezone(); trace(strDate.toString()); } } } When trying to compile using FlexBuilder I get this error. 1061: Call to a possibly undefined method toString through a reference with static type net.natebeck.core:DateTime. Well that's dumb... the whole reason I'm using the Proxy class is so I don't have to re-write every method within my class. Am I missing something? -- Cheers, Nate http://blog.natebeck.net -- Cheers, Nate http://blog.natebeck.net
[flexcoders] Re: flash.utils.Proxy -- Unable to compile.
I've seen some issues like that as well. We just ported a large Java project to Flash and came across all sorts of this stuff. If you're interested at all, there are a series of posts I wrote up at http://blog.sharendipity.com/. I even wrote one about using the Proxy class for implementing a few design patterns: http://blog.sharendipity.com/moving-to-flash-part-4. Although, it turns out it's not as efficient as creating an inner class, but that poses problems with non-public access as well. I digress... Glad I could help, Dale --- In flexcoders@yahoogroups.com, Nate Beck n...@... wrote: Hey Dale, That makes sense... and thanks for your reply. Making the DateTime class dynamic fixed the issue. Weird thing is that without the dynamic keyword sometimes it will compile, and sometimes it won't. Anyways thanks! On Mon, Jan 5, 2009 at 11:40 AM, cadisella beerm...@... wrote: I've ran into this before. I think that you just want to declare your class as dynamic. -Dale --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com, Nate Beck nate@ wrote: So this is kind of annoying, I have a proxy Class that I am working with... here is a trimmed down version of it. -- DateTime.as (Trimmed version) -- package net.natebeck.core { import com.flexoop.utilities.dateutils.DaylightSavingTimeUS; import flash.utils.Proxy; import flash.utils.flash_proxy; public class DateTime extends Proxy { // Instance Variables protected var _date:Date; protected var _timezone:Timezone; public function DateTime(... args) { super(); _date = new Date(args[0]); if(args[0] is String) setTimezone(parseTimezone(args[0])); } public function setTimezone(value:Timezone):void { trace(Setting Timezone: +value); _timezone = value; } public function getTimezone():Timezone { trace(Getting Timezone: +_timezone); return _timezone; } public function getTimezoneOffset():Number { return _timezone.offset; } override flash_proxy function callProperty(methodName:*, ... args):* { var res:*; switch (methodName.toString()) { case 'toString': res = foobar; break; default: res = _date[methodName].apply(_date, args); break; } return res; } override flash_proxy function getProperty(name:*):* { trace(getting property: +name); return _date[name]; } override flash_proxy function setProperty(name:*, value:*):void { _date[name] = value; } } } I've written a simple test application to test my DateTime Proxy class while I'm developing. -- TestDateTime.as -- package { import flash.display.Sprite; import net.natebeck.core.DateTime; import net.natebeck.core.Timezone; public class TestDateTime extends Sprite { public function TestDateTime() { var create:Object = Jun 17 12:00:00 GMT-0500 2009; var oldDate:Date = new Date(create); var strDate:DateTime = new DateTime(create); trace(old: +oldDate); trace(new: +strDate); strDate.getTimezone(); strDate.setTimezone(Timezone.PST); strDate.getTimezone(); trace(strDate.toString()); } } } When trying to compile using FlexBuilder I get this error. 1061: Call to a possibly undefined method toString through a reference with static type net.natebeck.core:DateTime. Well that's dumb... the whole reason I'm using the Proxy class is so I don't have to re-write every method within my class. Am I missing something? -- Cheers, Nate http://blog.natebeck.net -- Cheers, Nate http://blog.natebeck.net
Re: [flexcoders] Re: flash.utils.Proxy -- Unable to compile.
If it's not marked dynamic, you'll always get an exception when you try to dereference something that's not explicitly declared. If not, you've found a compiler bug :) However, if you're casting to something that's marked dynamic (such as Object, or *), it won't. And you can always use foo[field] without a compiler warning. -Josh On Tue, Jan 6, 2009 at 6:56 AM, cadisella beerm...@gmail.com wrote: I've seen some issues like that as well. We just ported a large Java project to Flash and came across all sorts of this stuff. If you're interested at all, there are a series of posts I wrote up at http://blog.sharendipity.com/. I even wrote one about using the Proxy class for implementing a few design patterns: http://blog.sharendipity.com/moving-to-flash-part-4. Although, it turns out it's not as efficient as creating an inner class, but that poses problems with non-public access as well. I digress... Glad I could help, Dale --- In flexcoders@yahoogroups.com, Nate Beck n...@... wrote: Hey Dale, That makes sense... and thanks for your reply. Making the DateTime class dynamic fixed the issue. Weird thing is that without the dynamic keyword sometimes it will compile, and sometimes it won't. Anyways thanks! On Mon, Jan 5, 2009 at 11:40 AM, cadisella beerm...@... wrote: I've ran into this before. I think that you just want to declare your class as dynamic. -Dale --- In flexcoders@yahoogroups.com flexcoders%40yahoogroups.com, Nate Beck nate@ wrote: So this is kind of annoying, I have a proxy Class that I am working with... here is a trimmed down version of it. -- DateTime.as (Trimmed version) -- package net.natebeck.core { import com.flexoop.utilities.dateutils.DaylightSavingTimeUS; import flash.utils.Proxy; import flash.utils.flash_proxy; public class DateTime extends Proxy { // Instance Variables protected var _date:Date; protected var _timezone:Timezone; public function DateTime(... args) { super(); _date = new Date(args[0]); if(args[0] is String) setTimezone(parseTimezone(args[0])); } public function setTimezone(value:Timezone):void { trace(Setting Timezone: +value); _timezone = value; } public function getTimezone():Timezone { trace(Getting Timezone: +_timezone); return _timezone; } public function getTimezoneOffset():Number { return _timezone.offset; } override flash_proxy function callProperty(methodName:*, ... args):* { var res:*; switch (methodName.toString()) { case 'toString': res = foobar; break; default: res = _date[methodName].apply(_date, args); break; } return res; } override flash_proxy function getProperty(name:*):* { trace(getting property: +name); return _date[name]; } override flash_proxy function setProperty(name:*, value:*):void { _date[name] = value; } } } I've written a simple test application to test my DateTime Proxy class while I'm developing. -- TestDateTime.as -- package { import flash.display.Sprite; import net.natebeck.core.DateTime; import net.natebeck.core.Timezone; public class TestDateTime extends Sprite { public function TestDateTime() { var create:Object = Jun 17 12:00:00 GMT-0500 2009; var oldDate:Date = new Date(create); var strDate:DateTime = new DateTime(create); trace(old: +oldDate); trace(new: +strDate); strDate.getTimezone(); strDate.setTimezone(Timezone.PST); strDate.getTimezone(); trace(strDate.toString()); } } } When trying to compile using FlexBuilder I get this error. 1061: Call to a possibly undefined method toString through a reference with static type net.natebeck.core:DateTime. Well that's dumb... the whole reason I'm using the Proxy class is so I don't have to re-write every method within my class. Am I missing something? -- Cheers, Nate http://blog.natebeck.net -- Cheers, Nate http://blog.natebeck.net -- Flexcoders Mailing List FAQ: http://groups.yahoo.com/group/flexcoders/files/flexcodersFAQ.txt Alternative FAQ location: https://share.acrobat.com/adc/document.do?docid=942dbdc8-e469-446f-b4cf-1e62079f6847 Search Archives: http://www.mail-archive.com/flexcoders%40yahoogroups.comYahoo! Groups Links -- Therefore, send not to know For whom the bell tolls. It tolls for thee. Like the cut of my jib? Check out my Flex blog! :: Josh 'G-Funk' McDonald :: 0437 221 380 :: j...@gfunk007.com :: http://flex.joshmcdonald.info/ :: http://twitter.com/sophistifunk