![]() |
преобразование текста в объект.
Как можно (и можно ли) преобразовать текст в объект?
Например: Есть объект DinamicText c именем "MyText1". Есть текстовая переменная MyName. Можно ли сделать типа такого: var MyName = "MyText1"; MyObj = MyName; // ??? MyObj.text = "Мой текст"; MyObj._x = 100; Т.е. в текстовую переменную заношу имя реального объекта, а потом с ним делаю что мне нужно. Может есть другой вариант? Мне нужно, чтобы можно было работать только с одним объектом (MyObj), название которого я беру из текстовой переменной MyName. |
MyObj = eval(MyName);
|
MyObj = this[MyName];
|
а вдруг не this а _level0.mamaDorogaya.rodiMenyaObratno ?
|
тогда беда.. :)
или _level0.mamaDorogaya.rodiMenyaObratno[MyName] зы: к eval сложилось какое-то негативное отношение, почему, правда, не могу до сих пор понять.. |
ивал это деректива компилятора, которая зверски все это дело тормозит.
вобщем ее лучше не юзать если не припрет. |
хотелось все же понять какое дело директива компилятора может зверски тормозить
к слову, тесты показывают примерно одинаковую скорость доступа через eval и [] Код:
this.createEmptyMovieClip("myMc",0) |
я на паре сайтов, видел бенчмарки где ивал уступал, но сам не проводил, вроде одна статья даже на русском была
а насчет деректива и тормоза, я не строил цепочек, наверное не так высказался, просто использовать дерективы в рантайме, кажеться чуть чуть извратом. |
Цитата:
"Выигрыш в производительности можно получить, если использовать для переопределения переменных и свойств предложение set, а для чтения их значений – функцию eval()...." |
О вспомнил где статью на русском видел
http://www.initclip.com/articles/0000004/ Цитата:
Цитата:
|
Цитата:
Аргументы Гурского более чем убедительны - Например, следующая строчка set(clip1.clip2.clip3.prop, “Привет”); будет скомпилирована в 2 команды Flash-ассемблера: push 'clip1.clip2.clip3.a', 'Привет' setVariable Если использовать операторы доступа к свойствам clip1.clip2.clip3.a="Привет"; то команд будет целых 8: push 'clip1' getVariable push 'clip2' getMember push 'clip3' getMember push 'a', 'Привет‚' setMember |
года два назад тестировал производителность и через точку было медленнее, не давно тоже видел статью где утверждалось обратное, я очень удивился и полез проверять снова...результат тот же.
ЗЫ: эту же статью и читал :p |
скачал декомпилер, проверил стэк оригинально...
|
Вчера нашел такую вещь:
var MyName = "MyObject"; _root[MyName].text = "Мой текст"; (тоже самое предложил silin) Меня это устраивает. Всем большое спасибо! |
| Часовой пояс GMT +4, время: 21:18. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.