Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 07.09.2005, 10:35
DarkRipple вне форума Посмотреть профиль Отправить личное сообщение для DarkRipple Найти все сообщения от DarkRipple
  № 1  
Ответить с цитированием
DarkRipple

Регистрация: Jun 2005
Сообщений: 16
Отправить сообщение для DarkRipple с помощью ICQ
По умолчанию как сделать свойство объекта свойством по умолчанию?

день добрый!
хочется сделать так, чтобы при обращении к объекту выводилось какое-либо его свойство (заранее определенное).
по типу как обращение к textfield выводит textfield.text.

то есть:
есть объект (item).
есть значение ("item_17"), допустим это будет свойство val.
и есть число ("17"), допустим это будет свойство id.

необходимо чтобы:
trace (item) выводило "item_17".
trace (item.val) выводило "item_17".
trace (item.id) выводило "17".

есть ли стандартные методы задания свойства по умолчанию? без создания новых классов и проч..
чтобы по возможности было минимум кода..

Старый 07.09.2005, 10:53
ffffff вне форума Посмотреть профиль Отправить личное сообщение для ffffff Посетить домашнюю страницу ffffff Найти все сообщения от ffffff
  № 2  
Ответить с цитированием
ffffff
 
Аватар для ffffff

Регистрация: Aug 2005
Адрес: Москва
Сообщений: 825
Отправить сообщение для ffffff с помощью ICQ
тебе к мовиклипу надо это прикрутить?

Старый 07.09.2005, 12:26
DarkRipple вне форума Посмотреть профиль Отправить личное сообщение для DarkRipple Найти все сообщения от DarkRipple
  № 3  
Ответить с цитированием
DarkRipple

Регистрация: Jun 2005
Сообщений: 16
Отправить сообщение для DarkRipple с помощью ICQ
Цитата:
Сообщение от ffffff
тебе к мовиклипу надо это прикрутить?
это облегчает/усложняет задачу?

полный смысл такой:
объект создается в рантайме, допустим при нажатии кнопки:
_root["item"] = new Object ();
потом я устанавливаю ему два свойства (имена любые)
_root["item"]["val"] = "item_17";
_root["item"]["id"] = "17";
(все в кавычках потому что все имена я загружаю извне)
это то как я сейчас реализовал.

теперь мне надо при нажатии на другую кнопку получить значение свойства (допустим VAL) обращаясь только к объекту, а не к его свойству.
чтобы trace(_root["item"]) вывел "item_17".

может есть вариант решения не через объект?
можно конечно создать невидимый textField и работать через свойство "text", но мне не хотелось бы использовать интерфейсные объекты..

Старый 07.09.2005, 12:31
Dimchansky вне форума Посмотреть профиль Отправить личное сообщение для Dimchansky Посетить домашнюю страницу Dimchansky Найти все сообщения от Dimchansky
  № 4  
Ответить с цитированием
Dimchansky

Регистрация: Jul 2005
Сообщений: 225
Отправить сообщение для Dimchansky с помощью ICQ
var val=_root["item"]["val"];
var id=_root["item"]["id"];
trace ("val = "+val+"; id = "+id);

ctrl+enter

Старый 07.09.2005, 13:12
DarkRipple вне форума Посмотреть профиль Отправить личное сообщение для DarkRipple Найти все сообщения от DarkRipple
  № 5  
Ответить с цитированием
DarkRipple

Регистрация: Jun 2005
Сообщений: 16
Отправить сообщение для DarkRipple с помощью ICQ
Цитата:
Сообщение от Dimchansky
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;

но так, естественно, не работает!

Старый 07.09.2005, 13:27
Dimchansky вне форума Посмотреть профиль Отправить личное сообщение для Dimchansky Посетить домашнюю страницу Dimchansky Найти все сообщения от Dimchansky
  № 6  
Ответить с цитированием
Dimchansky

Регистрация: Jul 2005
Сообщений: 225
Отправить сообщение для Dimchansky с помощью ICQ
видимо я не понял вопрос
Цитата:
_root.my_obj.width= 37;
_root.my_obj.width= 37;
_root.my_obj.height = 15;
это почему же так нельзя? можно

а вот _root.my_obj = - это есть конструктор объекта, и кирпич в правой стороне равенства недопустим. Честно говоря я так и не понял суть твоего вопроса:
Цитата:
теперь, не зная имени этого свойства, я хочу получить его значение просто обращаясь к _root.my_obj.
как ты можешь не знать имени свойства твоего объекта, если ты его сам конструируешь?

Старый 07.09.2005, 13:44
DarkRipple вне форума Посмотреть профиль Отправить личное сообщение для DarkRipple Найти все сообщения от DarkRipple
  № 7  
Ответить с цитированием
DarkRipple

Регистрация: Jun 2005
Сообщений: 16
Отправить сообщение для DarkRipple с помощью ICQ
Цитата:
Сообщение от Dimchansky
видимо я не понял вопрос
это почему же так нельзя? можно
а вот _root.my_obj = - это есть конструктор объекта, и кирпич в правой стороне равенства недопустим.
я это и имел ввиду, что либо my_obj= "кирпич" и тогда это просто переменная и никаких свойств, либо "кирпич" суем в свойство Value и тогда обращение к my_obj вернет [object object]
Цитата:
Сообщение от Dimchansky
Честно говоря я так и не понял суть твоего вопроса:
как ты можешь не знать имени свойства твоего объекта, если ты его сам конструируешь?
очень просто (: имя свойства (как и объекта) появлется уже во время работы скрипта, и чтобы через время к нему обратиться придется запоминать куданить (а) имя объекта и (б)имя свойства. целых два значения (: , а у меня есть только имя объекта (личные причины). соответственно хотелось бы на стадии создания объекта и задания его свойств одно из них сделать как-бы "по умолчанию". чтобы обращаться к его значению только через имя объекта.

Старый 07.09.2005, 14:18
Dimchansky вне форума Посмотреть профиль Отправить личное сообщение для Dimchansky Посетить домашнюю страницу Dimchansky Найти все сообщения от Dimchansky
  № 8  
Ответить с цитированием
Dimchansky

Регистрация: Jul 2005
Сообщений: 225
Отправить сообщение для Dimchansky с помощью ICQ
хм... ну как вариант ты можешь создать свойство типа Array в конструкторе объекта this.common_properties=[], а потом наполнять его по мере поступления данных: my_obj.common_properties.push(переменная типа Object), где переменная - получаемые и обработанные тобой переменные типа {property:value}, а в самом скрипте обращаться по индексу:
with (my_obj.common_properties[i]){
for (j in this){
trace (j)
}
}

или че-то типа этого. может, это поможет?

Старый 07.09.2005, 14:47
KidsKilla вне форума Посмотреть профиль Отправить личное сообщение для KidsKilla Посетить домашнюю страницу KidsKilla Найти все сообщения от KidsKilla
  № 9  
Ответить с цитированием
KidsKilla
.grin! wuz here
 
Аватар для KidsKilla

Регистрация: Aug 2004
Адрес: paradise city
Сообщений: 3,981
Отправить сообщение для KidsKilla с помощью ICQ
нахрена велосипед???

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.
Старый 07.09.2005, 15:20
DarkRipple вне форума Посмотреть профиль Отправить личное сообщение для DarkRipple Найти все сообщения от DarkRipple
  № 10  
Ответить с цитированием
DarkRipple

Регистрация: Jun 2005
Сообщений: 16
Отправить сообщение для DarkRipple с помощью ICQ
может я все еще непонятно объясняю?...
или я ответы неправильно интерпретирую?
попробую объяснить оторванно от кода.
в один момент у меня есть список имен (объектов или переменных не важно).
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.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 09:36.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.