2
我有一個類Inhabitant
,房產類型爲skin
,類型爲DisplayObject
。AS3 - 通過方括號表示法獲取另一個房產內的房產價值
在Inhabitant
我需要用這種方法來訪問皮膚x
和y
屬性:
this["someProperty"];
不是:
this.someProperty;
這是細跟屬性中Inhabitant
定義,但我不知道我怎麼能做到這一點skin
財產。這顯然不工作,但它可能給你的什麼,我試圖做一個想法:
this["skin.x"];
背後需要這個符號的原因是,我有我可以分析一個字符串,雖然這種意願的功能表示屬性:
public function addTokenable(property:String):void
{
if(!isTokenable(property))
_tokenables[property] = true;
}
然後相關的吸氣,將返回的Inhabitant
此實例的String表示形式:
public function get token():String
{
_token = "class:" + getQualifiedClassName(this).split("::").join(".");
for(var i:String in _tokenables)
_token += "#" + i + ":" + this[i];
return _token;
}
這RESU LT在類似:
class:terra.environment.Inhabitant#someProperty:someValue#etc:etc
我們的目標是能夠在addTokenable()
方法中引用皮膚的性質,這樣我可以有沿着線的東西:
var person:Inhabitant = new Inhabitant();
person.skin = new PersonSkin();
person.skin.x = 100;
person.skin.y = 150;
person.addTokenable("skin.x");
person.addTokenable("skin.y");
trace(person.token); // class:terra.environment.Inhabitant#skin.x:100#skin.y:150
有趣的是,我會給這樣的事情去看看我的票價。 – Marty
像魅力一樣工作,謝謝! – Marty