Re: [Flashcoders] RE:Flashcoders] Extending Array Question

2006-04-18 Thread Fumio Nonaka

Another solution:

// ActionScript 2.0 Class Definition: com/ArrayExtension.as
dynamic class com.ArrayExtension extends Array {
function ArrayExtension() {
if (arguments.length == 1 && !isNaN(arguments[0])) {
this.length = arguments[0];
} else {
this.push.apply(this, arguments);
}
}
}

// fla for Testing
// Frame Action
import com.ArrayExtension;
var arEx0:ArrayExtension = new ArrayExtension("one", "two", "three");
trace([arEx0.length, arEx0]);  // Output: 3,one,two,three
var arEx1:ArrayExtension = new ArrayExtension(3);
trace([arEx1.length, arEx1]);  // Output: 3,undefined,undefined,undefined

// [Debug] > [List Variables]:
Variable _level0.arEx0 = [Object #3] [
0:"one",
1:"two",
2:"three"
  ]
Variable _level0.arEx1 = [Object #4] []
_
Mike Britton wrote:

class com.ArrayExtension extends Array
{

   public function ArrayExtension()
   {
   super()
var argString = arguments[0].split(",");

   for(var i=0; i< argString.length; i++)
   push(argString[i]);

   }

}

Usage:

var arEx = new ArrayExtension("one,two,three");
trace(arEx.length);


Good luck,

Fumio Nonaka
mailto:[EMAIL PROTECTED]
http://www.FumioNonaka.com/
My books
Flash community

___
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com


Re: [Flashcoders] RE:Flashcoders] Extending Array Question

2006-04-18 Thread Mike Britton
class com.ArrayExtension extends Array
{

   public function ArrayExtension()
   {
   super()
var argString = arguments[0].split(",");

   for(var i=0; i< argString.length; i++)
   push(argString[i]);

   }

}

Usage:

var arEx = new ArrayExtension("one,two,three");
trace(arEx.length);



hth,

Mike


On 4/18/06, Robert Leisle <[EMAIL PROTECTED]> wrote:
> You could also do:
>
> var myArray:ArrayExtension = new ArrayExtension();
>
> myArray.push("Hello", "Goodbye", "World");
>
> same result as doing them separately.
>
>
>
> [EMAIL PROTECTED] wrote:
>
> >Thanks, that will work. So there is no definitive way to add the values all 
> >at once, i.e. [1,4,5,76,3] when extending an Array?
> >
> >Thanks again.
> >
> >
> >
> >>Ian Thomasn wrote:
> >>Hi there (whoever you are!)
> >>
> >>Your problem is that the [1,2,3] initialiser syntax is actually a
> >>short cut for creating a new Array() object, not an ArrayExtension().
> >>So you're replacing the object you just created with new().
> >>
> >>What you need to do is to _modify_ your ArrayExtension() object, not 
> >>replace it.
> >>
> >>If you try:
> >>
> >>var myArray:ArrayExtension = new ArrayExtension();
> >>
> >>myArray.push("Hello");
> >>myArray.push("Goodbye");
> >>myArray.push("World");
> >>
> >>That should sort your problem.
> >>
> >>HTH,
> >> Ian
> >>
> >>
> >___
> >Flashcoders@chattyfig.figleaf.com
> >To change your subscription options or search the archive:
> >http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
> >
> >Brought to you by Fig Leaf Software
> >Premier Authorized Adobe Consulting and Training
> >http://www.figleaf.com
> >http://training.figleaf.com
> >
> >
> >
>
> --
> ~
> Bob Leisle
> Headsprout Software & Engineering
> http://www.headsprout.com
> Where kids learn to read!
>
>
> ___
> Flashcoders@chattyfig.figleaf.com
> To change your subscription options or search the archive:
> http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
>
> Brought to you by Fig Leaf Software
> Premier Authorized Adobe Consulting and Training
> http://www.figleaf.com
> http://training.figleaf.com
>


--
Mike
--
http://www.mikebritton.com
http://www.mikenkim.com
___
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com


Re: [Flashcoders] RE:Flashcoders] Extending Array Question

2006-04-18 Thread Robert Leisle

You could also do:

var myArray:ArrayExtension = new ArrayExtension();

myArray.push("Hello", "Goodbye", "World");

same result as doing them separately.



[EMAIL PROTECTED] wrote:


Thanks, that will work. So there is no definitive way to add the values all at 
once, i.e. [1,4,5,76,3] when extending an Array?

Thanks again.

 


Ian Thomasn wrote:
Hi there (whoever you are!)

Your problem is that the [1,2,3] initialiser syntax is actually a
short cut for creating a new Array() object, not an ArrayExtension().
So you're replacing the object you just created with new().

What you need to do is to _modify_ your ArrayExtension() object, not replace it.

If you try:

var myArray:ArrayExtension = new ArrayExtension();

myArray.push("Hello");
myArray.push("Goodbye");
myArray.push("World");

That should sort your problem.

HTH,
Ian
   


___
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com

 



--
~
Bob Leisle 
Headsprout Software & Engineering

http://www.headsprout.com
Where kids learn to read!


___
Flashcoders@chattyfig.figleaf.com
To change your subscription options or search the archive:
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders

Brought to you by Fig Leaf Software
Premier Authorized Adobe Consulting and Training
http://www.figleaf.com
http://training.figleaf.com