我创建了一个类item。这个类通过函数itemdata()返回它的变量;我正在创建这个类的对象实例并通过this将它们添加到另一个对象中:
//Item Creation
function additem(Name:String,file:Class,workswith:String,tu rnsinto:String,examine:String,X:Number,Y:Number) {
var itemname:item = new item();
var ItemDB:Array= new Array();
itemname.create(Name,file,workswith,turnsinto,exam ine,X,Y);
itemname.addChild(itemname.itemdata("filename"));
ItemDB.push(itemname);
var itemindb:int = ItemDB.length-1;
Items.addChild(ItemDB[itemindb]);
}
//--
然而,当试图访问项目的变量后,它被点击(以以下方式)
stage.addEventListener (MouseEvent.CLICK,InventoryPickup);
function InventoryPickup(event:MouseEvent):void {
var t:DisplayObject = DisplayObject(event.target);
if (t.parent==Items){
t.itemdata();
}
}
我得到一个错误说:
1061: Call to a possibly undefined method itemdata through a reference with static type flash.display:DisplayObject.
知道我做错了什么吗?谢谢!
因为您将var t定义为DisplayObject
,现在它没有方法itemdata,因为它不是Item
类的实例…
试试这个:
var t:Item = Item(event.target);
代替:
var t:DisplayObject = DisplayObject(event.target);