我正在學習AS3,但在編程(TP和Atari Basic)中有一些陳舊的背景。在這個論壇上,我學會了使用如下面的循環來解決對象類中的每個變量,以便對對象(深度或淺度)進行克隆,或者在我的情況下爲工具提示構建文本。不過,我的行不通。這是循環,下面是一個解釋,任何幫助,你可以給我很欣賞!無功能「for循環」用於尋址每個變量的類
var tooltipText:String;
var i:String;
for (i in bsm) {
if (!(bsm[i] is String)) {
if (bsm[i] != 0) {
tooltipText = i + ": " + bsm[i];
tooltip.extendTooltip(tooltipText, 0xFFFFFF);
}
}
}
請原諒可怕的變量名稱。 '我'是一個字符串。 「BSM」是類StatMod,這與
public class StatMod extends Object {
public static const ENCHANTMENTMODIFIER:String = "enchantmentModifier";
public var enchantmentType:String = "None";
public var enchantmentDescriptor:String = "None";
public var minDamage:Number = 0;
public var maxDamage:Number = 0;
public var attackSpeed:Number = 0.2;
預期的行爲是要經過各StatMod的變量(開頭的非空實例,我沒有顯示所有這些,我會添加更多),如果變量是非零數字,則創建一個字符串(例如「attackSpeed:0.2」),然後將該字符串添加到工具提示中。 tooltip.extendTooltip函數正常工作。
觀察到的行爲基本上是計算機認爲bsm中沒有變量。
我能說些什麼或做什麼來說服電腦,實際上是 variabels in bsm?
相反從對象外部訪問屬性,向你的類添加一個方法,返回工具提示應該顯示的'String'。您可以重寫子類中的方法以獲得不同的行爲,但可以利用多態性。 – null