![]() |
|
||||||||||
|
|||||
|
Добрый день, есть вот такой вот класс:
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 По сути задача имеет сл. смысл: 1. this.Properties хранятся имена свойств (или методов) this объекта и их значения; 2. нужно узнать: - совпадает ли имя свойства this c именем ключа в this.Properties - если совпадает, то - присваиваем найденному свойству в this значение совпавшего имени ключа в this.Properties. Последний раз редактировалось ERrorMAKros; 06.07.2010 в 19:15. |
|
|||||
|
Регистрация: Mar 2008
Сообщений: 259
|
1. Зачем столько приведений? От пхп научились?
2. В AS переменные case sensitive, Так что в итоге такой код преображается в |
|
|||||
|
Тьфу блин, ...у меня Lucida Console стоит в редакторе, ...ломал глаза ломал, ...вроде все с регистром нормально, Сайлас - СПАСИБО! Еще бы до утра искал! Поду отдохну чуть-чуть, ...уже на глаза ничего не вижу
![]() ![]() |
![]() |
![]() |
Часовой пояс GMT +4, время: 13:56. |
|
|
« Предыдущая тема | Следующая тема » |
|
|