[flexcoders] Re: flash.utils.Proxy -- Unable to compile.

2009-01-05 Thread cadisella
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.

2009-01-05 Thread Nate Beck
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.

2009-01-05 Thread cadisella
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.

2009-01-05 Thread Josh McDonald
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