Vectorのunshiftがおかしい
数値以外を入れるとunshiftがバグる
レイアウトが崩れるので undefined は X と表示している
追記:Version 10,0,22,87 では修正されているようです
//数値以外を入れるとunshiftがバグる
//レイアウトが崩れるので undefined は X と表示している
//追記:Version 10,0,22,87 では修正されているようです
package{
import flash.display.Sprite;
import flash.text.TextField;
public class VectorTest extends Sprite {
private const N:int = 5;
private var tf:TextField = new TextField();
private var a1:Array = new Array();
private var a2:Array = new Array();
private var a3:Array = new Array();
private var a4:Array = new Array();
private var a5:Array = new Array();
private var a6:Array = new Array();
private var v1:Vector.<int> = new Vector.<int>();
private var v2:Vector.<Number> = new Vector.<Number>();
private var v3:Vector.<Boolean> = new Vector.<Boolean>();
private var v4:Vector.<String> = new Vector.<String>();
private var v5:Vector.<A> = new Vector.<A>();
private var v6:Vector.<Object> = new Vector.<Object>();
public function VectorTest() {
tf.autoSize = "left";
addChild(tf);
append("array", "int","n", "boo", "str", "A", "obj");
append("length", a1.length, a2.length, a3.length, a4.length, a5.length, a6.length);
for (var i:uint = 0; i < N; i++) {
append("length:", a1.unshift(i), a2.unshift(i), a3.unshift(true), a4.unshift(i.toString()), a5.unshift(new A(i)), a6.unshift(new Object().id = i));
}
append("");
for (i = 0; i < N; i++) {
append("element", a1.shift(), a2.shift(), a3.shift(), a4.shift(), a5.shift(), a6.shift());
}
append("--------------------------------------------------------------------------------------------------------");
append("vector", "int","n", "boo", "str", "A", "obj");
append("length", v1.length, v2.length, v3.length, v4.length, v5.length, v6.length);
for (i = 0; i < N; i++) {
append("length:", v1.unshift(i), v2.unshift(i), v3.unshift(true), v4.unshift(i.toString()), v5.unshift(new A(i)), v6.unshift(new Object().id = i));
}
append("");
for (i = 0; i < N; i++) {
append("element", v1.shift(), v2.shift(), v3.shift(), v4.shift(), v5.shift(), v6.shift());
}
}
private function append(... args):void {
for (var i:int = 0; i < args.length; i++) {
tf.appendText(args[i] === undefined ? "X" : args[i])
tf.appendText("\t\t\t");
}
tf.appendText("\n");
}
}
}
class A {
private var id:int;
public function A(id:int) {
this.id = id;
}
public function toString():String {
return id.toString();
}
}