【发布时间】:2018-03-27 12:42:45
【问题描述】:
我不知道怎么问这个问题。
我有一个变量
public static var MaxDurabilityTestItem:Number = 3;
我有一个函数
public static function setItemInSlot(Item:String, Slot:Number, MaxDurability:Number = 0)
{
UI_Taskbar_Inventory.InventoryItems[Slot] = Item;
if(MaxDurability == 0)
{
trace("Before change " + UI_Taskbar_Inventory.InventoryDurability);
UI_Taskbar_Inventory.InventoryDurability[Slot] = "MaxDurability" + Item;
trace("After change " + UI_Taskbar_Inventory.InventoryDurability);
}
else
{
trace("not using default durability");
}
}
这个函数中唯一让我头疼的部分就是这一行
UI_Taskbar_Inventory.InventoryDurability[Slot] = "MaxDurability" + Item
输出
更改前 0,0,0,0,0,0,0,0
更改后 0,MaxDurabilityTestItem,0,0,0,0,0,0
虽然我希望它输出
更改前 0,0,0,0,0,0,0,0
改变0,3,0,0,0,0,0,0后
我知道这个问题,但是,我不知道如何解决它。 "MaxDurability" + Item 生成一个名为 MaxDurabilityTestItem 的字符串,而不是引用我的变量 MaxDurabilityTestItem。
如何更改它以使其引用我的变量 MaxDurabilityTestItem,而不是它创建的这个字符串?
【问题讨论】:
-
静态属性是类的属性。您可以通过类引用来解决它:ClassReference[StaticPropertyName]。如果您的班级名称是 MyClass,它将是 MyClass['MaxDurabilityTestItem']。
-
为什么是
"MaxDurability" + Item?Item可能会改变吗? -
是的 项目将会改变。该功能是为物品所在的槽位设置物品的耐久度。
-
@Organis 我意识到我的问题已得到解答,但要扩展 ClassReference[StaticPropertyName] 部分,函数将如何完成?我试过 ItemHandling[Item + "Effect"]; - 但是(1.)它不起作用,并且(2.)我不知道把括号放在哪里——也就是说,如果你完全应该这样做的话。 (本例中函数名称为TestItemEffect)
-
@UnAlpha 好的,我在下面发布了一些解释。
标签: actionscript-3 flash actionscript cs3