我想在鼠标悬停时显示项目名称。项目名称变量在项目类中。我在场景中有一个叫做苹果的物体。我在代码中将其命名为“Apple”。当我在同一代码的函数中调用itemName时,它表示当鼠标悬停在对象上时它没有被定义。如果我在函数外部追踪apple.itemName,它就可以了。我不知道为什么。这是我的代码:
我场景中的代码:
import flash.events.MouseEvent;
import inventory.inventorySystem;
import inventory.item;
var IS:inventorySystem;
var IT:item;
apple.itemName = "Apple";
apple.itemIcon = new AppleIcon();
apple.addEventListener(MouseEvent.MOUSE_OVER, showItemNameF);
function showItemNameF(Event:MouseEvent){
var itemNameBox:TextField;
itemNameBox.text = this.itemName;
itemNameBox.x = mouseX;
itemNameBox.y = mouseY;
}
项目类:
package inventory {
import flash.display.MovieClip;
public class item extends MovieClip{
public var itemName:String;
public var itemIcon:MovieClip;
}
}
答案 0 :(得分:1)
this
不会引用您的apple实例。 (您是从AS2来的吗?)this
是您的类/时间轴的引用,其中您的侦听器代码位于其中,并且没有定义任何itemName变量。为了能够检索名称,您必须执行以下操作:
Apple(e.currentTarget).itemName //assuming that Apple is your class of the apple instance.