0

我创建了一个名为 item 的类。此类使用函数 itemdata() 返回其变量;我正在创建此类的对象实例并通过以下方式将它们添加到另一个对象:

//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.

知道我做错了什么吗?谢谢!

4

1 回答 1

0

因为您将 var t 定义为DisplayObject现在它没有方法 itemdata 因为它不是Item类的实例...
试试这个:

var t:Item = Item(event.target); 

代替:

var t:DisplayObject = DisplayObject(event.target);
于 2013-05-03T17:20:04.637 回答