![]() |
создать Worker из mxml ?
Создаю Worker из loaderInfo.bytes flex проекта:
worker = WorkerDomain.current.createWorker(_main.stage.loaderInfo.bytes); после загрузки его получаю: Код:
Error: Error #3731: This feature is not available within this context.var defaultMenu:ContextMenu = new ContextMenu(); причина ошибки понятна, но как можно ее убрать? примечание - не могу использовать эмбеднутую swf из-за слишком большого ее размера и не могу использовать генерацию swf из класса из-за слишком большого времени генерации. |
Чем вам, в данном случае, должен помочь worker?
|
разгрузить основной поток от сложных вычислений, загрузки тяжелых данных с сервера, их парсинга. Мне вовсе не нужен собственно mxml в worker-е, если Вы об этом, но мне важно чтобы worker имел доступ к большому количеству классов VO (и не только), именно поэтому мне приходится впихивать в worker основной swf.
|
никто не говорил о визуальных элементах в worker-e. Спасибо за совет, но в данном случае нужен именно worker.
Так проблему кто-то знает как решить? это один из трех "законных" (описанных в доках Адоби) способов формирования worker-a - использовать для него основную свфку. А вот если эта swf флексовая то Вы получите ошибку, описанную выше. Неужели такая редкая ситуация и никто не знает? |
Да почему же, смотрите:
1. Ошибка возникает когда флеш загрузив флексовую свфку инициализирует флексовый Application и в нем создает дефолтное контекстное меню, тут никакой тайны нет. Вопрос как избежать этого действия. 2. байты и с мейна и со стейджа одни и те же. Спасибо за ссылки, но они давно прочитаны и они ни слова не говорят о моей проблеме (worker из mxml). И в видео он создает as3 проект а вовсе не флексовый. Воркеры я создавать умею, они успешно работают. Но с mxml вот такая трудность. Попробуйте создать самый базовый флекс проект, и из него загрузить самого себя как воркер и не получить ошибку: Код:
<?xml version="1.0" encoding="utf-8"?> |
Ну так и выносите в worker загрузку и парсинг.Незачем тащить туда Application, он для этого не предназначен.
|
Как я уже говорил, эмбедить свфку не вариант, она слишком сильно раздувает конечный файл. Много данных, с которыми надо работать из воркера. Кстати я нашел решение, костыль так сказать. Я создал свой прелоадер и все что надо инициализировать по воркеру - делаю в нем. И происходит это До вышеуказанной ошибки. Для конечного пользователя все работает как надо - и файл мал и все классы доступны. Только вот при отладке эта ошибка все равно вылазит и приходится каждый раз продолжать выполнение после нее. Это печально, но лучше чем ничего. Возможно нормальное решение все же найдется со временем.
|
| Часовой пояс GMT +4, время: 17:46. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.