Я не могу рекомендовать Authortime Sharing, так как я не смог использовать все компоненты из нескольких SWC в моем проекте. Причина после нескольких дней расследования довольно странная.
По крайней мере, один компонент (например, диалоговое окно) всегда генерирует ошибки типа, когда он использует общие компоненты времени автора (например, кнопку), и общий компонент имеет имя экземпляра. Все работает нормально, если вы не назначаете имена экземпляров совместно используемым компонентам в компонентах, которые вы связали с помощью ActionScript, и создаете их позже в вашем проекте.
Цель состояла в том, чтобы разбить массивный * fla на несколько меньших, разделяя ресурсы во время разработки, чтобы изменения делились между разделенными меньшими fla и компилятором (не во время выполнения!) Не дублировать эти классы. Это прекрасно работает, даже когда массово используется action-linking и пользовательские базовые классы. (деактивируйте автоматически объявлять экземпляры stage, хотя) Компилятор успешно исключает все дублированные классы, вызванные общим доступом. Вы можете контролировать это, легко просматривая каждый включенный SWC.
Чтобы просто воспроизвести проблему, вы должны сделать 2 флага. каждый с мувиклипом (например, диалогом) и общим. (например, кнопка; один флаг делит кнопку с другим). Назначьте все компоненты actioncript-linkage. Поместите кнопку в каждом из диалогов и назначьте каждой кнопке имя экземпляра. Скомпилируйте оба флага в swcs, включите их в свой проект и попробуйте создать оба диалоговых окна. Один из них выдаст ошибку приведения типа # 1034. Удалите (одно из) имен экземпляров кнопки, и оно будет работать.
Чтобы получить впечатление - Вот скриншот (полный размер):
Я предполагаю, что пока имя экземпляра не установлено, flash не заботится о том, какой тип кнопки на самом деле и обрабатывает ее как мувиклип, но когда имя экземпляра установлено, проигрыватель пытается типизировать мувиклип указанного типа. Но по какой-то причине не смотрит на все пространство имен (?), А только в SWC, в котором был скомпилирован диалог. Я делаю вывод, потому что, когда кнопка была скомпилирована в SWCA, но не в SWCB, диалог из SWCA работает, но не диалог от Б и наоборот. Вы можете «заставить» кнопку поменять местами SWC, перекомпилировав флаг, в котором вы хотите, чтобы кнопка была.
Я также запускал его в редких случаях, включающих более 2-х fla / swc. Но понятия не имею, почему. Может быть, я продолжу расследование, но уже потратил немало времени на это.
Надеюсь, вы найдете хорошее решение (и опубликуете его: P), потому что у нас та же проблема, что и у вас.
€: ошибка (только?), По-видимому, возникает, если вы также обновили общий компонент один раз
€ €: и только если вы экспортируете SWC, когда открыт другой флаг с общим компонентом (??)