I think you may be able to do what you are doing by using the ByteArray class 
but I would wait for someone that knows more than me. The only things that get 
passed by reference is any class that inherits from an Object and Array is a 
native Flash player class in C++. 



----- Original Message ----
From: Sherif Abdou <[EMAIL PROTECTED]>
To: flexcoders@yahoogroups.com
Sent: Wednesday, July 16, 2008 8:59:54 PM
Subject: Re: [flexcoders] Array reference vs values


If i remember correctly since I am mixing too much C++,ActionScript, Coldfusion 
and learning them all the same time. Any of the primitive stuff in Actionscript 
get passed only by value and not by reference so you can't do what you are 
doing. 



----- Original Message ----
From: Darren Houle <[EMAIL PROTECTED] com>
To: [EMAIL PROTECTED] ups.com
Sent: Wednesday, July 16, 2008 8:55:33 PM
Subject: RE: [flexcoders] Array reference vs values


Josh
 
Yes, what you're describing is exactly what I described and is, in fact, what 
it happening... but to say I don't ever need to do this?  Well... yes... I need 
to do this... and it has nothing to do with the garbage collector.
 
Here, let me explain in another way....
 
I have a custom object... lets say it's a Person object.  It has various 
properties, but several are Date types.  These are all consecutive, like a 
workflow, and I want to be able to address them in order via an array... like 
this...
 
var person : Person = new Person();
 
person.wakeup = new Date();
person.breakfast = new Date();
person.lunch = new Date();
person.dinner = null;
person.bedtime = null;
 
var timeArr : Array = new Array();
 
timeArr[0] = person.wakeup;
timeArr[1] = person.breakfast;
timeArr[2] = person.lunch;
timeArr[3] = person.dinner;
timeArr[4] = person.bedtime;
 
 
Then some other code figures out where we are in the flow of the day's events...
 
var status : int;
if (some criteria)
      {  event = 2;  }
 
But I determine lunch hasn't actually happened yet, so it shouldn't have a Date 
yet.  I need to blank out this value that was previously set in the Person 
object...
 
if (some criteria)
     {  timeArr[event] = null;  }
 
But since these references don't seem to propogate backwards, nulling one of 
the array elements doesn't affect the original property.  That's the *whole 
purpose* of reference vs value... a reference is a pointer to memory space... 
so if I null that memory space it should affect all the vars pointing to that 
memory space.
 
Does that make more sense?

Darren




________________________________
 
To: [EMAIL PROTECTED] ups.com
From: [EMAIL PROTECTED] com
Date: Thu, 17 Jul 2008 11:30:29 +1000
Subject: Re: [flexcoders] Array reference vs values



When you do this:

  var date:Date = new Date();

You're creating an instance of Date and a reference to it named "date".

When you do this:

  var ref:Date = arr[0] as Date;

You're creating another reference to the same instance, this time your 
reference is named "ref". So when you set ref = null, you're making "ref" point 
to nothing. "date" and "arr[0]" remain unchanged. You don't need to, nor can 
you remove the date instance created above. That's the job of the garbage 
collector.

-Josh


On Thu, Jul 17, 2008 at 11:25 AM, Darren Houle <[EMAIL PROTECTED] com> wrote:

This might be a basic AS question, but I encountered it building a
Flex app, so...

I create a Date

       var date:Date = new Date();

I create an Array

       var arr:Array = new Array();

I set the first element of the array equal to the date

       arr[0] = date;

I create another date variable that refers to the first array element

       var ref:Date = arr[0] as Date;

if I trace("date= "+date+", arr[0]="+arr[ 0]+", ref="+ref) I get

date=Wed Jul 16 21:04:45 GMT-0400 2008, arr[0]=Wed Jul 16 21:04:45
GMT-0400 2008, ref=Wed Jul 16 21:04:45 GMT-0400 2008

Now I null out the ref variable

       ref=null;

Since AS uses references instead of values I would expect to null out
the original date, but no...

If I trace("date= "+date+", arr[0]="+arr[ 0]+", ref="+ref) I now get

date=Wed Jul 16 21:04:45 GMT-0400 2008, arr[0]=Wed Jul 16 21:04:45
GMT-0400 2008, ref=null

I thought everything was a reference in AS?  Shouldn't nulling ref
also null arr[0] which would null out date?

Ultimately.. . I have a custom object that has several fields each
containing a Date.  I create an array and make each element in the
array = each Date in the custom obj.  I need to be able to null an
array element and have it carry backwards into the object and null
out the original Date.  Any ideas?  Am I missing something really
obvious?


------------ --------- --------- ------

--
Flexcoders Mailing List
FAQ: http://groups. yahoo.com/ group/flexcoders /files/flexcoder sFAQ.txt
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."

:: Josh 'G-Funk' McDonald
:: 0437 221 380 :: [EMAIL PROTECTED] com  
    


      

Reply via email to