Эй, да, вы можете загрузить его один раз; вы можете иметь все свои активы в одном SWF, а после загрузки использовать их по мере необходимости.
Например, предположим, вы хотите использовать две графические строки (фрагменты роликов), rowA и rowB, на SWF, которые вы должны загрузить; этот SWF будет действовать как ваша библиотека ресурсов. Что вам нужно сделать, так это создать клипы ролика rowA и rowB в вашей библиотеке и настроить их для экспорта в ActionScript. (В библиотеке FLA щелкните правой кнопкой мыши по ним и выберите свойства и выберите «Экспорт для ActionScript» в поле ввода класса введите «rowA» для этого примера и «rowB» соответственно). Теперь, когда у вас есть активы в вашей библиотеке (они не должны на сцене), опубликуйте swf-файл.
Теперь перейдем к SWF, где вы фактически будете использовать эту «библиотеку». Здесь вам просто нужно загрузить свою библиотеку SWF (та, которая имеет графические объекты), и вам хорошо идти. Пример кода,
// Our URL Request
var req:URLRequest = new URLRequest();
req.url = "assets.swf";
// Let create our loader
var loader:Loader = new Loader();
loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onLibLoaded);
var context:LoaderContext = new LoaderContext();
context.applicationDomain=ApplicationDomain.currentDomain;
loader.load(req,context);
function onLibLoaded(e:Event):void
{
createRows();
}
function createRows()
{
var myRowAClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("rowA") as Class;
var rowA:MovieClip = new myRowAClass() as MovieClip;
this.addChild(rowA);
var myRowBClass:Class = loader.contentLoaderInfo.applicationDomain.getDefinition("rowB") as Class;
var rowB:MovieClip = new myRowBClass() as MovieClip;
rowB.y = rowA.height;
this.addChild(rowB);
}
Как вы можете видеть, когда загружается ваша библиотека активов, вы можете использовать активы в зависимости от того, как вам нравится. В любом случае, надеюсь, что это поможет, и, надеюсь, это то, что вы искали.