2013-05-30 5 views
0

У меня есть 2 swf-s, main.swf и другой.swf.
main.swf будет загружать другой.swf во время выполнения.
Соответствующие классы для них: Main и Another.
Оба они import общий класс Constant.Выполняет ли импорт «основной» swf импорт загруженного swf в скрипт действия 3?

Проблема заключается в том:
Если внести изменения в класс Constant, как определить новую константу класса Another, то я, конечно, хочет, чтобы скомпилировать another.swf.
Затем я запустил main.swf и загрузить другой.swf, НО изменения Constant не применяются!

В Наоборот, я должен перекомпилировать main.swf, чтобы внести изменения, примененные к another.swf.
Похоже, так another.swf загружается main.swf, поэтому import также полагается на main.swf.
При запуске main.swf первый, класс MainimportConstant класс первый, так что любая предстоящая import скрыто (или игнорируется?), Это правда?

Выполняется только один раз, import, и выполняется первым воспроизведением .swf?

.swf нагрузка сделан flash.display.Loader класс.

ответ

1

Когда класс загружен, его полное доменное имя (имя pacakge + имя класса) добавляется в общий реестр реестра. Когда main.swf загружает класс Constant, класс кэшируется. Этот реестр генерируется во время компиляции, так что main.swf имеет определение класса Contant как было, когда оно было скомпилировано.

Фактически, если вы меняете Constant, вы можете перекомпилировать только main.swf и посмотреть, что измененное определение доступно в another.swf.

+0

Это правда! Я могу только перекомпилировать main.swf, чтобы применить изменения, это также беспокоит меня. У вас есть официальная статья (adobe или кто-либо), который объясняет все эти механизмы? Я бы очень хотел прочитать все подробности, спасибо! –

+0

Почему это поведение кэша беспокоит меня, так это то, что на самом деле у меня есть много .swf для загрузки. И если класс кэширован, мне приходится перекомпилировать основной и другой .swf, хотя я не внес никаких изменений в main. –

+0

@MarsonMao Ну, рассмотрим глобальный класс var как глобальный include, который заставляет вас перекомпилировать все ваши проекты, которые его используют, если вы его измените. Это нормально. – Vesper