|
|
« Предыдущая тема | Следующая тема » |
Опции темы | Опции просмотра |
|
|
|||||
Передать определение класса в фоновый worker.
Помогите передать определение класса в фоновый выполняющийся swf. (Worker)
Вообщем, я пробую передать ссылку на класс через канал: Главный swf: В фоновом приходит уже не Class а Object: И потом уже не могу зарегистрировать его через registerClassAlias(), так как там требуется Class. Такая дилема. Мотивы этой историй в том, что-бы 1 раз создать класс, который бы запускал отдельный поток с возможностью выгрузки в него реализаций (Классов) и последующей передачи выполнения разных задач с этими классами. Что-бы не делать каждый раз отдельный swf для конкретной задачи, так-как Worker принимает на вход swf.
__________________
Дети не должны знать о своих родителях |
|
|||||
Насколько я понимаю, передать ссылку на класс, которого в воркере нет, нельзя. Просто потому что Worker - это отдельный инстанс виртуальной машины. Тем не менее, можно передать байткод, в котором класс описан.
__________________
...вселенская грусть |
|
|||||
Я так думал, что передавая Class - он (определение) сериализуется и передастся в другой воркер. Но на деле, во втором воркере получаю уже Object а не Class.
Ок, как тогда записать определение класса в байткод и затем обратно собрать и зарегистрировать? Тут вопрос получается такой: как в рантайме создать определение нового класса из байткода. Вот простенький пример с записью класса в байткод: (Тоже самое происходит при передаче его в воркер) Вот как обратно получить Class, что-бы можно было зарегистрировать его?
__________________
Дети не должны знать о своих родителях |
|
|||||
Цитата:
По второму вопросу все просто: ApplicationDomain.getDefinition(). То есть просто берем Loader, делаем ему loadBytes(mySwfBytes) и получаем Loader с загруженной в него swf-кой. mySwfBytes - это то, что будем передавать между потоками. Там собственно и будет наш байткод. А вот по первому вопросу все сложнее - я вижу 2 решения. 1) Разбить нужный блок приложения на кучу swf-ок (1 класс == 1 swf). Тогда сможем отсылать в воркер нужные нам классы по одному. 2) Генерить swf "на лету". Инструменты для этого есть, можно нагуглить. ЗЫ Не совсем ясен контекст задачи, возможно есть другие пути.
__________________
...вселенская грусть |
Часовой пояс GMT +4, время: 18:27. |
|
« Предыдущая тема | Следующая тема » |
|
|