2015-01-15 85 views
0

我正在创建一个用户烘焙蛋糕的游戏。如果用户将某物(例如一壶水)拖到下一个物体(例如平底锅)上,它应该从舞台上消失。有问题的代码段是:ActionScript 3.0对象在舞台上为空

function mouseDownHandler(event:MouseEvent):void { 
event.currentTarget.startDrag(true); 
} 
function mouseUpHandler(event:MouseEvent):void{ 
var obj = event.currentTarget; 
var target = obj.dropTarget; 
if (target != null){ 
test_match(target, obj); 
} 
obj.stopDrag(); 
trace(dropTarget); 
} 
function test_match(target, obj){ 
if (target == saucePan && obj == jug) 
{ 
removeChild(obj); 
} 
} 

的mouseUpHandler函数内部跟踪显示了“空”每当我在舞台上,hense为什么我不认为代码执行和删除一个对象上滴壶舞台上的水壶。

回答

0

obj.dropTarget vs. dropTarget 这是两件不同的事情。

+0

更改为dropTarget时舞台上的对象仍为null – CBear 2015-01-15 17:44:25

+0

是的,因为它与舞台上的任何对象无关。你从来没有在任何地方声明过dropTarget。你把它与obj.dropTarget混淆了,因此我的回答是关于它们之间的区别。 obj.dropTarget访问对象的属性。 dropTarget本身就是你的代码中的一些随机文本,它会被解释为null。 – null 2015-01-15 17:57:02

+0

我还是很困惑。有什么办法可以为我照亮一些光?我仍然不明白为什么我可以拖动屏幕上的物体,但它们输出空值?我应该如何声明dropTarget? – CBear 2015-01-15 18:17:20