Показать сообщение отдельно
Старый 08.02.2019, 00:53
Sweet07 вне форума Посмотреть профиль Отправить личное сообщение для Sweet07 Найти все сообщения от Sweet07
  № 1  
Ответить с цитированием
Sweet07
 
Аватар для Sweet07

Регистрация: Jul 2011
Сообщений: 121
По умолчанию Обновление методов "на лету"

Есть задача, чтоб определённые функции после запуска основного ПО можно было менять (код)
Подгрузка дополнительного кода происходит из внешних swf файлов.
Первичная загрузки при старте приложения проходит на ура: работают методы загруженной флешки, создание экземпляров объектов из библиотеки загруженной, обращение к переменным родительской и так далее.
Но вот засада: повторная загрузка изменённого файла загружаемой флешки не прёт. Методы и значения переменных в "загруженной " не меняются.

Основная
Код AS3:
var fnc:*
//...тут код загрузки файла. LoaderContext.allowCodeImport присвоено true
function loadedFnc(e:Event):void{
 if (fnc) fnc=null;
 fnc=e.target.content;
 trace(fnc.getVars(this))
}
 
function getParInfo():String{
  return "Parent swf. Running and cozy.";
}
В загружаемой флешке код примерно такой. Меняется id
Код AS3:
var par:*
var id:int=345;
function getVars(parnt:*):void{
 par=parnt;
 trace(par.getParInfo()); 
 trace("Loaded swf id =",id);
}
При загрузке обновлённой остаётся висеть старая...но при перезапуске основной - естественно подгружается обновлённая.

Кто уже пробовал копать в данной тематике?

Добавлено через 2 минуты
Загрузка происходит через File. Среда выполнения AIR
__________________
for (year=0;year<life;year++) {birthday(year)}