Actionscript 3 AS3如何从电影剪辑中访问主时间线上的电影剪辑?
在一个RPG类型的flash上工作,我必须能够从很多位置控制一个文本框。给我带来麻烦的是库存。我需要能够从inventory clip instance name inventory中访问带有statusWindow实例的文本框,因此当我将鼠标悬停在movieclip中的项目上时,它将更改舞台上的状态窗口 在本例中,我想将鼠标从主时间线移到inventory.invHealth上以获得显示。 itemName和itemProps是包含项目信息的字符串 我尝试了以下方法,但它给了我一个可能未定义的错误Actionscript 3 AS3如何从电影剪辑中访问主时间线上的电影剪辑?,actionscript-3,flash,Actionscript 3,Flash,在一个RPG类型的flash上工作,我必须能够从很多位置控制一个文本框。给我带来麻烦的是库存。我需要能够从inventory clip instance name inventory中访问带有statusWindow实例的文本框,因此当我将鼠标悬停在movieclip中的项目上时,它将更改舞台上的状态窗口 在本例中,我想将鼠标从主时间线移到inventory.invHealth上以获得显示。 itemName和itemProps是包含项目信息的字符串 我尝试了以下方法,但它给了我一个可能未定义的
invHealth.addEventListener(MouseEvent.MOUSE_OVER, itemStats);
function itemStats(e:Event):void
{
root.statusWindow.text = itemName+"\n"+itemProps;
}
我对AS3还不是很熟练,所以如果你能在发布代码时解释一下——尽管大多数人通常都这么做——我会非常感激。提前谢谢 我建议您将信息数据存储在类对象中;该对象应该可以通过statusWindow和资源清册剪辑访问。这样就不需要读取文本框,您将对同一数据有不同的视图。例如:
public class GlobalVars
{
public static var health:Number;
}
当然,您可以创建更结构化的信息数据,如:
public class Item
{
public function Item(setname:String)
{
name=setname;
health = 100;
quantity = 0;
}
private var name:String;
private var health:Number;
private var quantity:Number;
}
var inventory:Array = new Array();
inventory.push(new Item("hammer"));
inventory.push(new Item("gun"));
inventory.push(new Item("sponge"));
我需要为此创建一个外部.as文件吗?您不需要,但如果您这样做,这是一件好事。将每个类放入其单独的.as文件中。在初始化方法中创建类的对象。使对象可通过各种剪辑访问。