![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|||||
|
день добрый!
хочется сделать так, чтобы при обращении к объекту выводилось какое-либо его свойство (заранее определенное). по типу как обращение к textfield выводит textfield.text. то есть: есть объект (item). есть значение ("item_17"), допустим это будет свойство val. и есть число ("17"), допустим это будет свойство id. необходимо чтобы: trace (item) выводило "item_17". trace (item.val) выводило "item_17". trace (item.id) выводило "17". есть ли стандартные методы задания свойства по умолчанию? без создания новых классов и проч.. чтобы по возможности было минимум кода.. |
|
|||||
|
тебе к мовиклипу надо это прикрутить?
|
|
|||||
|
Цитата:
полный смысл такой: объект создается в рантайме, допустим при нажатии кнопки: _root["item"] = new Object (); потом я устанавливаю ему два свойства (имена любые) _root["item"]["val"] = "item_17"; _root["item"]["id"] = "17"; (все в кавычках потому что все имена я загружаю извне) это то как я сейчас реализовал. теперь мне надо при нажатии на другую кнопку получить значение свойства (допустим VAL) обращаясь только к объекту, а не к его свойству. чтобы trace(_root["item"]) вывел "item_17". может есть вариант решения не через объект? можно конечно создать невидимый textField и работать через свойство "text", но мне не хотелось бы использовать интерфейсные объекты.. |
|
|||||
|
var val=_root["item"]["val"];
var id=_root["item"]["id"]; trace ("val = "+val+"; id = "+id); ctrl+enter |
|
|||||
|
Цитата:
попробую по другому: я знаю что у меня есть объект _root.my_obj (создал где-то в далеких просторах кода). я знаю что у него есть несколько свойств, одно из которых например называется value (ему присвоено значение). теперь, не зная имени этого свойства, я хочу получить его значение просто обращаясь к _root.my_obj. в идеале я бы хотел вообще избавиться от свойства VALUE: _root.my_obj = "кирпич"; _root.my_obj.width= 37; _root.my_obj.height = 15; _root.my_obj.length = 15; но так, естественно, не работает! |
|
|||||
|
видимо я не понял вопрос
![]() Цитата:
а вот _root.my_obj = - это есть конструктор объекта, и кирпич в правой стороне равенства недопустим. Честно говоря я так и не понял суть твоего вопроса: Цитата:
|
|
|||||
|
Цитата:
Цитата:
|
|
|||||
|
хм... ну как вариант ты можешь создать свойство типа Array в конструкторе объекта this.common_properties=[], а потом наполнять его по мере поступления данных: my_obj.common_properties.push(переменная типа Object), где переменная - получаемые и обработанные тобой переменные типа {property:value}, а в самом скрипте обращаться по индексу:
with (my_obj.common_properties[i]){ for (j in this){ trace (j) } } или че-то типа этого. может, это поможет? |
|
|||||
|
.grin! wuz here
|
нахрена велосипед???
1) Array.prototype.myValue = "some text"; var x = new Array() trace(x.myValue) 2) function MyObj(text){ var x = new Array() x.myVal = text return x; } var z = MyObj("text"); trace(z.myVal)
__________________
Breakcore them all! Последний раз редактировалось KidsKilla; 07.09.2005 в 14:52. |
|
|||||
|
может я все еще непонятно объясняю?...
или я ответы неправильно интерпретирую? попробую объяснить оторванно от кода. в один момент у меня есть список имен (объектов или переменных не важно). var1, var2, var3......varN теперь нужно присвоить им наборы свойств/аттрибутов: для var1 - id, value, code, name... для var2 - text, numer... ... для varN - tom45_71. и я знаю, что через полчаса я забуду имена свойств, а буду помнить только имена объектов (выписаны на бумашке). но я знаю что перед этим (заранее) я для каждого объекта указал одно из его свойств как свойство по умолчанию, например: для var1 это свойство code, для var2 это свойство text.... и теперь вызвав просто var1 я получу значение свойства code, аналогично для var2 - text. никаких других переменных, никаких индексов у меня на этом этапе (получасом позже) уже нет. Так вот вопрос: КАК УКАЗАТЬ УМОЛЧАТЕЛЬНОЕ СВОЙСТВО? в любом случае, моя первоначальная идея пошла прахом, и срочности уже нет, но найти решение будет интересно для общего развития. всем принявшим участие спасибо! и всем кто еще примет - тоже! |
![]() |
![]() |
Часовой пояс GMT +4, время: 09:36. |
|
|
« Предыдущая тема | Следующая тема » |
|
|