![]() |
Аналог функции eval() в php
Всем привет.
Есть задача следующего рода: с сервера присылается некий текст и служебная информация, в зависимости от которой, текст должен отображаться в разных компонентах (textaria, TextInput, label и т.д.) Допустим в некоторый момент времени я решу написать ещё какой то свой компонент и захочу чтоб текст отображался в нём. Так вот вопрос, как бы мне сделать так, что бы при этом не надо было перекомпиливать весь проект. Вот в PHP например есть функция eval(), которая принимает на входе произвольный код и исполняет его. Есть ли что то похожее во флексе? если нет, то можно ли компилить компоненты в отдельные swf-ники, а потом подключать в основном аппликейшене??? Помогите плиз найти рациональное решение. |
Написать рантайм компилятор.
|
ответ нет. eval () тут очень упрощенная и это делать не умеет.
|
Я решил делать так:передавать типа компонента в функцию, там его создавать , задавать ему всякие свойства и потом уже делать addchild() в какой нить hbox или vbox. Тока у меня опять не всё получается
Код:
... |
Дык, напиши в типе возврата DisplayObject
|
а я написал по другому
hBox.addChild(DisplayObject(CreateComponent('TextInput'))); Так не правильно? |
А что, написать правильный тип возврата сложнее было? Кастить зачем? Они и так наследуются от DisplayObject, зачем кастить лишний раз…
Только уж тогда Код:
public function createComponent(componentType:String):DisplayObject { |
гы гы шлабаки, никакоего изврата( настоящий изврат:
Код:
private var classes : Object = {'TextInput' : TextInput, |
Ну пусть new Shape хотя б…
|
Не нужно ничего возвращать, перед return надо написть throw new Error('No Such Class');
ибо в mx.core.Contaiener можно дабавлять только IUIComponent(контейнер должен уметь алайнить компоненты, в IUIComponent заложено это) а плодить лишние IUIComponent'ы это издевательство над оперативкой. |
| Часовой пояс GMT +4, время: 15:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.