Thanks very much Morten

DannyT
 

-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Morten
Barklund Shockwaved
Sent: 20 December 2005 13:15
To: Flashcoders mailing list
Subject: Re: [Flashcoders] Array like access to custom class?

Dan Thomas wrote:
> Can I provide array like access to a custom collection object?
> 
> E.g.
> 
> Class MyClass
> {
>       private var myArray:Array;
>       
>       public function getArray():Array
>       {
>               return this.myArray;
>       }
> }
> 
> [snip]
> 
> How can I change it so I can achieve the same thing but with access to
> the items like this:
> 
> var someClass:MyClass = new MyClass;
> thisItem = someClass[0];

Use __resolve:

class MyClass
{
        private var myArray:Array;
        
        public function __resolve(name:String):Object
        {
                if (!isNaN(name)) {
                        return myArray[Number(name)];
                } else {
                        return false;
                }
        }
}

But it will not "strict type" properly at all, so you lose major 
benefits of using as2 this way. I'd do it:

class MyClass
{
        private var myArray:Array;
        
        public function elem(n:Number):Object
        {
                return myArray[n];
        }
}

And:

var someClass:MyClass = new MyClass;
thisItem = someClass.elem(0);

Then you will get proper validation of argument, parameter and return
types.

-- 
Morten Barklund - Information Architect - Shockwaved
Gothersgade 49, 4th floor - DK-1123 Copenhagen K, Denmark
Phone: +45 7027 2227 - Fax: +45 3369 1174
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

This message and any attachments should only be read by those persons to whom 
it is addressed and be used by them for its intended purpose.  It must not 
otherwise be reproduced, modified, distributed, published or actioned. If you 
have received this e-mail in error, please notify us immediately by telephone 
on 01202 237000 and delete it from your computer immediately. This e-mail 
address must not be passed to any third party or be used for any other purpose. 
Every reasonable precaution has been taken to ensure that this e-mail, 
including attachments, does not contain any viruses. However, no liability can 
be accepted for any damage sustained as a result of such viruses, and 
recipients are advised to carry out their own checks. 


Moov2 Ltd cannot accept liability for statements made which are clearly the 
senders own and not made on behalf of the Moov2 Ltd. An e-mail reply to this 
address may be subject to interception or monitoring for operational reasons or 
for lawful business purposes.


_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Reply via email to