простой пример кода:

Код AS3:
var mySprite:Sprite = new Sprite();
trace('trace_1', typeof mySprite, mySprite is Sprite); //trace_1 object true
var arr1:Array = [];
arr1.push(mySprite);
trace('trace_2', typeof arr1[0], arr1[0] is Sprite); //trace_2 object true
var arr2:Array = [];
arr2.push(arr1.splice(0, 1));
trace('trace_3', typeof arr2[0], arr2[0] is Sprite); //trace_3 object false
почему в первом трэйсе тип Object, почему не Sprite?
почему в третьем трэйсе arr2[0] is Sprite == false? ведь это всё тот же mySprite.
буду признателен за разъяснения.