[英]Action Script 3. How to get object's name from e.target?
我正在開發拖放游戲。 我無法成功獲取e.target
名稱。
我正在使用以下:
private function stopDragObject(e:MouseEvent):void
{
if (e.target.hitTestObject(e.target.name+"Field")) // here I should get name
{
trace(e.target + "Field");
trace(e.target.name + "Field");
trace(e.target.label + "Field");
e.target.x = (e.target).x;
e.target.y = (e.target).y;
}
想法是我有對象Item1
,如果它命中了Item1Field
應該成功。 但是現在我無法正確獲取e.target
名稱。 我已將跟蹤用於測試目的,並且返回以下內容:
trace(e.target);
OUTPUT: [object Item1]Field
trace(e.target.name);
OUTPUT: instance55Field
trace(e.target.label);
OUTPUT: undefinedField
它應該返回Item1Field
你有想法嗎?
接下來,我添加對象的偵聽器:
private function addListeners(... objects):void
{
for (var i:int = 0; i < objects.length; i++)
{
objects[i].addEventListener(MouseEvent.MOUSE_DOWN, dragObject);
objects[i].addEventListener(MouseEvent.MOUSE_UP, stopDragObject);
}
}
假設您有兩個這樣的對象:
var item1:Item1 = new Item1();
item1.name = 'item1';
addChild(item1);
var item1_field:Field = new Field();
item1_field.name = 'item1_Field';
addChild(item1_field);
因此,您可以像這樣訪問您的item1_field
(名為item1_Field
):
private function stopDragObject(e:MouseEvent):void
{
var name:String = e.currentTarget.name + '_' + 'Field';
trace(e.currentTarget.parent[name].name); // gives : item1_Field
trace(e.currentTarget.parent[name]); // gives : [object Field]
if (e.currentTarget.hitTestObject(e.currentTarget.parent[name]))
{
// instructions here
}
}
希望能對您有所幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.