Добрый день, есть вот такой вот класс:

Код AS3:
package {
import flash.display.MovieClip;
public class ApplicationForm extends MovieClip {
private var Properties:Object;
public var SomeValue:String="";
public function ApplicationForm(){
this.Properties={someValue: "changed!"};
this.ApplyProperties();
} // ApplicationForm
public function ApplyProperties():void{
for(var i:String in this.Properties){
// if(this.hasOwnProperty(String(i))){ не работает
// if(String(i) in this){ не работает
if(this.hasOwnProperty(String(i).valueOf())){
/*
1. говорит что String(i) не принадлежит this (срабатывает else)
2. как правильно проверить что String(i) принадлежит this?
3. как правильно присвоить this[String(i)] значение this.Properties[String(i)];
*/
} else {trace("property not found");}
} // for...
} // ApplyProperties
} // class
} // package
Вот в this.ApplyProperties() в IF целый ряд вопросов.
По сути задача имеет сл. смысл:
1. this.Properties хранятся имена свойств (или методов) this объекта и их значения;
2. нужно узнать:
- совпадает ли имя свойства this c именем ключа в this.Properties
- если совпадает, то - присваиваем найденному свойству в this значение совпавшего имени ключа в this.Properties.