Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 3.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 02.03.2014, 18:37
Vreden вне форума Посмотреть профиль Отправить личное сообщение для Vreden Найти все сообщения от Vreden
  № 1  
Ответить с цитированием
Vreden
 
Аватар для Vreden

Регистрация: Feb 2009
Сообщений: 141
По умолчанию getDefinitionByName в worker не работает

Код AS3:
public static function registerClassAliasByClassName(className:String):void
		{
			var ClassReference:Class = getDefinitionByName(className) as Class;
			var commandAliasRegister:CommandAliasRegister = new ClassReference();
			commandAliasRegister.register();
		}
Проблема в следующем, данный метод вызывается в первичном и вторичном потоке, он регистрирует классы, которые будут передаваться между потоками. В первичном потоке он работает, но во вторичном я получаю ошибку:

Код AS3:
ReferenceError: Error #1065: Variable LoaderCommandAliasRegister is not defined.
	at global/flash.utils::getDefinitionByName()
Я так понимаю, что это из-за разных ApplicationDomain, есть ли способ решить проблему?

Старый 03.03.2014, 17:13
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 2  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
При компиляции воркера добавьте необходимый класс в опциях компилятора (-includes ...)
__________________
משיח לא בא
משיח גם לא מטלפן

Старый 03.03.2014, 18:00
Vreden вне форума Посмотреть профиль Отправить личное сообщение для Vreden Найти все сообщения от Vreden
  № 3  
Ответить с цитированием
Vreden
 
Аватар для Vreden

Регистрация: Feb 2009
Сообщений: 141
Цитата:
Сообщение от alatar Посмотреть сообщение
При компиляции воркера добавьте необходимый класс в опциях компилятора (-includes ...)
Воркер компилируется средствами FB, я указываю класс существующего проекта, который будет компилироваться в Worker, все, что мне доступно, это выбрать, будет ли воркер встроенный или динамически подгруженный. Т.е. мой воркер это не отдельный проект с параметрами компиляции.

К тому же вся суть динамической регистрации сводится именно к повторному использованию кода, т.е. я кормлю воркер объектами классов команд, воркер предварительно динамически регистрирует классы, которые используются в объекте команды, получает команду и выполняет ее, соответственно уведомляет клиентский код о прогрессе и выполнении. Воркер сможет выполнять любую работу и мне не придется больше работать непосредственно с ним, а только написать реализацию команды и скормить ее.

Если я буду мертво зашивать используемые классы, весь смысл затеи теряется.

Кажется я нашел способ, который вероятно сработает, это использовать основную флешку и в качестве вторичного потока так же (используемые классы по идее будут доступны потоку), определяя ход выполнения программы свойством isPrimordial, отпишусь позднее.

Старый 03.03.2014, 18:43
alatar вне форума Посмотреть профиль Отправить личное сообщение для alatar Найти все сообщения от alatar
  № 4  
Ответить с цитированием
alatar
 
Аватар для alatar

блогер
Регистрация: Dec 2008
Адрес: Israel, Natanya
Сообщений: 4,740
Записей в блоге: 11
1. Ничто не мешает сделать его отдельным проектом.
2. Откуда ему взять эти классы, если они не доступны при компиляции?
3. Можете вынести их в отдельную библиотеку, тогда не придется их указывать по отдельности. Ну и см. п. 2.
4. Тут не зная специфики проекта сказать нечего.
__________________
משיח לא בא
משיח גם לא מטלפן

Создать новую тему Ответ Часовой пояс GMT +4, время: 19:23.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 19:23.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.