Hi Glenn,
Flash is still treating the array as a static member.
// treated as an instance variable
var myArray1:Array;
// treated as a static variable
var myArray2:Array = new Array();
Test this code:
// in actions frame 1
import myClass
trace("Creating instance a")
var a = new myClass();
a.addToArray();
a.addToArray();
a.addToArray();
trace("Creating instance b")
var b = new myClass();
// in class
class myClass {
// treated as an instance variable
var myArray1:Array;
// treated as a static variable
var myArray2:Array = new Array();
static var myArray3:Array = new Array();
function myClass() {
trace(" myArray1.length="+myArray1.length)
trace(" myArray2.length="+myArray2.length)
trace(" myArray3.length="+myArray3.length)
}
function addToArray() {
myArray1.push(10);
myArray2.push(10);
myArray3.push(10);
}
}
Glenn J. Miller wrote:
Hey Judah,
Try this:
class myClass {
// initialize the array in the declarations
private var myArray:Array = new Array();
function myClass {
trace("myArray.length="+this.myArray.length)
}
public function addToArray() {
this.myArray.push(10);
this.myArray.push(20);
}
} // end class
Run your code again, I think it'll execute the way you're expecting it to at
that point...
Peace...
--
Dok
Skyymap, Inc.
-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Judah
Frangipane
Sent: Thursday, December 29, 2005 3:30 PM
To: Flashcoders mailing list
Subject: [Flashcoders] Flash Class Array bug - Please verify
It seems like Flash is creating static members out of public arrays that
are initialized in the class declaration. Can someone confirm this? Is
this not legal, is it implied behavior or a bug?
// create a class called myClass
class myClass {
// initialize the array in the declarations
var myArray:Array = new Array();
function myClass {
trace("myArray.length="+myArray.length)
}
function addToArray() {
myArray.push(10)
myArray.push(20)
}
}
// on the actions frame
import myClass
var a = new myClass();
a.addToArray();
a.addToArray();
a.addToArray();
var b = new myClass();
// trace outputs
myArray.length=0
myArray.length=3
Judah
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders
_______________________________________________
Flashcoders mailing list
Flashcoders@chattyfig.figleaf.com
http://chattyfig.figleaf.com/mailman/listinfo/flashcoders