2016-12-16 85 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; 
} 
}