PDA

Просмотр полной версии : получение типа обекта в рантайме.


Mokus
19.08.2005, 12:30
Ситуация такая:
var numb1 = new Number(1);
trace(typeof(numb1)); // выводит object

var numb2 = 1;
trace(typeof(numb2)); // выводит number

Вопрос: как получить информацию о типе в ран тайм. ето относится конечно только к встроеным типам. Понятно, что все остальные и так будут обжекты.

iNils
19.08.2005, 12:31
не понял что ты хочешь и зачем.

ZЭТ
19.08.2005, 12:35
да , а че такое ран тайм - таймер чтоли????

iNils
19.08.2005, 12:47
да , а че такое ран тайм - таймер чтоли????
run-time - во время запуска наверно.

john
19.08.2005, 12:52
с примитивными типами работает typeof нормально,
так же с MovieClip и другими билд-in. но глючит - пример Number-object.

а для объектов лучше использовать instanceof

var n = new Number(1);
trace(n instanceof Number);

ну и в целом если хочется пользоваться анализом типов в рантайме и динамическое создание классов по имени (reflection), то лучше воспользоваться фреймворком типа as2lib, либо писать свой.

кстати а может задачка то проходящая и простая и не нужно тут городить огород? что за задача?

может нужно просто конструктор экземпляра получить и сделать клон? или задача сериализации-десериализации?

Mokus
19.08.2005, 13:44
сериализация-десериализация для связи с .нет

john
19.08.2005, 14:09
flash remouting не подойдет?
а вообще море есть готовых...
нужно только поискать,
типа toXML fromXML или какой другой формат,
есть еще AMF.... (открытая на java реализация http://www.openamf.org/)
кстати можно посмотреть новую реализацию external interface восьмерки.... может там какие новые идеи....

Mokus
19.08.2005, 14:33
flash remouting не подойдет?
а вообще море есть готовых...
нужно только поискать,
типа toXML fromXML или какой другой формат,
есть еще AMF.... (открытая на java реализация http://www.openamf.org/)
кстати можно посмотреть новую реализацию external interface восьмерки.... может там какие новые идеи....
Большое спасибо за ответы.

связь не с .нет вебсервисом. Пишу библиотеку для использования флеш интерфейса в WinApplication, при чем со стороны .нет создается иллюзия, что работаеш с нормальными вин-контролами. Пока все получается ;) .

john
20.08.2005, 12:44
ну тогда есть смысл, и еще какой, воспользоваться новым external interface восьмого плеера
как раз создан для связи с контейнером (html/javascrtipt, java, c#, etc)
http://www.ifbin.com/news/2005/08/flash-8-external-interface-example.html

никаких тебе заморочек с fscommand итд и тп,
вызывай функцию флэша извне, и внешнюю из флэша

вот еще пример-
http://osflash.org/doku.php?id=flashcoders:undocumented:flash8

я както учавствовал в таком проекте, и по мне что с той (контейнер) что с этой (флэш) код был совершенно уродским, fscommmand и SetVariable ...... как увидел external..... какое счастье.... автоматом переводит данные в xml c той и другой стороны, потом потом используй .... красота

Mokus
20.08.2005, 15:19
ну тогда есть смысл, и еще какой, воспользоваться новым external interface восьмого плеера
как раз создан для связи с контейнером (html/javascrtipt, java, c#, etc)
http://www.ifbin.com/news/2005/08/flash-8-external-interface-example.html

никаких тебе заморочек с fscommand итд и тп,
вызывай функцию флэша извне, и внешнюю из флэша

вот еще пример-
http://osflash.org/doku.php?id=flashcoders:undocumented:flash8

Согласен - довольно неплохо звучит. Только одна проблема клиент (тупые япошки) требует совместимости с ФлешПлеером 6.


я както учавствовал в таком проекте, и по мне что с той (контейнер) что с этой (флэш) код был совершенно уродским, fscommmand и SetVariable ...... как увидел external..... какое счастье.... автоматом переводит данные в xml c той и другой стороны, потом потом используй .... красота

Хороший обектный дизайн исправляет даже врожденные уродства кода ;) .

Спасибо, вы мне сильно помогли советом. В результате я написал все-таки свой сериализатор-десериализатор (два - один на стороне флеша, другой на стороне .нет). Использовал идеи из ФлешРемотинг (ASObject - позволяет не создавать в .нет клас для каждого типа, что передается из флеша). получилась довольно сносная абстракция: там, где из .нет юзаются флеш контролы используется аналог флеш обектов.

john
20.08.2005, 21:54
Хороший обектный дизайн исправляет даже врожденные уродства кода ;) .


Только вот где грань от хорошего объектного дизайна, до плохого? все относительно ;)
Проходит пару лет, и хороший дизайн кажется уродским.

Естественно что тогда использовались классы, что-то вроде класс-комманда, заполняется данными, потом вызывается геттер (присваивается к некому полю execute) и вперед - комманда исполняется. Как бы все красиво, но не так как хотелось бы.

К тому же, если честно, я уже не настолько озабочен ООП - ными фичами (рутина) чтобы от этого тащиться :)
У нас на форуме уже хороший тон - конкретный вопрос - ответ в виде цитирования паттерна.... Не к добру это ;)