2016-12-16 87 views
0

我有麻烦使这个代码functionnal,我很新的编码和每天学习,所以很抱歉,如果这个问题看起来很愚蠢。hittestobject拖放多个功能

这里就是我至今:

  • A1是一个拖放对象
  • A2是一个区域,其中A1为它下降,在文本字段添加值5
  • A3是一个区域,其中A1为它下跌,。减去一个文本框的值5

A1开始在A3区,当我拖到A1至A2,它表明5,如果我拖回到a3,它显示0,所以它是窝rking如预期


现在我挣扎:

  • 不加5,如果我移动A1至A2,A1时,已经在A2代码。
  • 如果我将a1移动到a3,而a1在a3上已经变为ALREADY,则代码不会减去5。

这里是我的代码:

var myTextBox:TextField = new TextField(); 

var myTextBox2:TextField = new TextField(); 
addChild(myTextBox2); 
myTextBox2.width = 200;  
myTextBox2.height = 100;  
myTextBox2.x = 100;  
myTextBox2.y = 20; 

a1.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
stage.addEventListener(MouseEvent.MOUSE_UP, drop); 

function drag(e:MouseEvent):void 
{ 
e.target.startDrag(); 
} 

function drop(e:MouseEvent):void 
{ 
stopDrag(); 
if (a1.hitTestObject(a2)) 
{ 
    myTextBox.text = "5"; 
    var r:String=String(uint(myTextBox.text)+uint(myTextBox2.text)); 
    myTextBox2.text=r; 
} 
if (a1.hitTestObject(a3)) 
{ 
    myTextBox.text = "5"; 
    var r2:String=String(uint(myTextBox2.text)-uint(myTextBox.text)); 
    myTextBox2.text=r2; 
} 

else 
{ 
    trace("No collision."); 
} 
} 

我不认为这是太复杂了,但我没有知识又使其工作,任何援助将不胜感激!谢谢!

回答

0

好吧,找到一个方法,发布代码以防万一需要它,或者如果有人有更好的代码,总是想学习!谢谢 !

添加了一个名为A4测试多个拖放可移动物体对象

var myTextBox:TextField = new TextField(); 
var myTextBox2:TextField = new TextField(); 
var myTextBox3:TextField = new TextField(); 
addChild(myTextBox2); 
myTextBox2.width = 200;  
myTextBox2.height = 100;  
myTextBox2.x = 100;  
myTextBox2.y = 20; 

a1.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
a1.addEventListener(MouseEvent.MOUSE_UP, drop); 
a4.addEventListener(MouseEvent.MOUSE_DOWN, drag); 
a4.addEventListener(MouseEvent.MOUSE_UP, drop); 

function drag(e:MouseEvent):void 
{ 
if (e.target.hitTestObject(a2)) 
{ 
    e.target.startDrag(); 
    myTextBox.text = "0"; 
    myTextBox3.text = "5"; 
} 
if (e.target.hitTestObject(a3)) 
{ 
    e.target.startDrag(); 
    myTextBox.text = "5"; 
    myTextBox3.text = "0"; 
} 
} 

function drop(e:MouseEvent):void 
{ 
stopDrag(); 
if (e.target.hitTestObject(a2)) 
{ 
    var r:String=String(uint(myTextBox.text)+uint(myTextBox2.text)); 
    myTextBox2.text=r; 
} 
if (e.target.hitTestObject(a3)) 
{ 
    var r2:String=String(uint(myTextBox2.text)-uint(myTextBox3.text)); 
    myTextBox2.text=r2; 
} 
}