TypeError: Error #1010: A term is undefined and has no properties.
at SchoolBookV2_fla::MainTimeline/dragObject1()[SchoolBookV2_fla.MainTimeline::frame18:50]
我正在尝试一些简单的拖放操作。但它似乎给了我这个错误。有人可以帮我解决吗?看起来它正在将变量 v 作为空引用。是不是应该有不同的排序?
代码:
import flash.sampler.NewObjectSample;
import flash.display.Sprite;
var bag : Sprite = new Sprite ();
var book1: Sprite = new Sprite ();
var book2: Sprite = new Sprite ();
var book3: Sprite = new Sprite ();
var book4: Sprite = new Sprite ();
var totalArray: Array = new Array ();
var v:int = 0;
bag.graphics.beginFill(0xFF6666);
bag.graphics.drawRect( 30,30, 100, 150);
bag.graphics.endFill();
addChild(bag);
book1.graphics.beginFill(0xCC6666);
book1.graphics.drawRect(300,300, 100, 150);
book1.graphics.endFill();
addChild(book1);
book2.graphics.beginFill(0xCC6666);
book2.graphics.drawRect( 150,150, 100, 150);
book2.graphics.endFill();
addChild(book2);
book3.graphics.beginFill(0xCC6666);
book3.graphics.drawRect( 200,200, 100, 150);
book3.graphics.endFill();
addChild(book3);
book4.graphics.beginFill(0xCC6666);
book4.graphics.drawRect( 80,80, 100, 150);
book4.graphics.endFill();
addChild(book4);
totalArray[totalArray.length] = book1;
totalArray[totalArray.length] = book2;
totalArray[totalArray.length] = book3;
totalArray[totalArray.length] = book4;
for (v; v < totalArray.length; v++)
{
trace(totalArray.length);
totalArray[v].addEventListener(MouseEvent.MOUSE_UP, stopdragObject1);
totalArray[v].addEventListener(MouseEvent.MOUSE_DOWN, dragObject1);
function dragObject1(e:MouseEvent)
{
totalArray[v].startDrag();
}
function stopdragObject1(l:MouseEvent)
{
totalArray[v].startDrag(false);
trace("exists");
if (totalArray[v].hitTestObject(bag))
{
totalArray[v].removeEventListener(MouseEvent.MOUSE_UP, stopdragObject1);
totalArray[v].removeEventListener(MouseEvent.MOUSE_DOWN, dragObject1);
trace("itworks");
totalArray[v].x = xPos;
totalArray[v].y = yPos;
trace("it doesn'twork");
}
else
{
totalArray[v].x = xPos;
totalArray[v].y = yPos;
trace("it doesn'twork");
}
totalArray[v].stopDrag();
}
}